aws / aws/aws-step-functions-data-science-sdk-python

Feature Request: Add Workflow.create_or_update() to update workflow if it exists or create it if it doesn't

Offen
#168 1 Kommentar 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Python
Sterne
299
Forks
84
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

When running notebooks in an automated fashion many times the StepFunction created by the workflow.create() method already exists. The same for when running the workflow.update() method when defining the Workflow for the first time.

We could extend the Workflow class with a create_or_update method that would check if the stepfunction exists, if it does, attach to that otherwise, update it.

```python
# Grab account/region from Boto/Sagemaker Session

class CustomWorkflow(Workflow):
def __init__(self, name, definition, role, update_sleep_seconds=8, **kwargs):
super(CustomWorkflow, self).__init__(name, definition, role, **kwargs)
self.update_sleep_seconds = update_sleep_seconds
self.expected_arn = f"arn:aws:states:{region}:{account_id}:stateMachine:{self.name}"

def create_or_update(self):
try:
target_wf = Workflow.attach(self.expected_arn)
print('State Machine Exists. Attaching and updating')
target_wf.update(definition=self.definition, role=self.role)
# Sleep to allow infrastructure to update before executing a new job
time.sleep(self.update_sleep_seconds)
except boto3.client('stepfunctions').exceptions.StateMachineDoesNotExist:
print('State Machine Not found, creating')
self.expected_arn = self.create()
return Workflow.attach(self.expected_arn)
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie bei der Workflow-Klasse und lesen Sie deren create(), update() und attach() Einstiegspunkte, um zu verstehen, wie die Existenz der Zustandsmaschine und die zurückgegebenen ARNs behandelt werden. Fertig ist die Aufgabe, wenn eine create_or_update()-Methode eine vorhandene Step Function aktualisiert oder eine fehlende erstellt und dann den angehängten Workflow wie beschrieben zurückgibt; im Issue wird kein Datei- oder Testpfad genannt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
aws, python
Bereich
cloud
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.