Beispiele der Verwendung von Amazon SWF mit AWS CLI - AWS Command Line Interface

Beispiele der Verwendung von Amazon SWF mit AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit Amazon SWF nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie count-closed-workflow-executions verwendet wird.

AWS CLI

So zählen Sie geschlossene Workflow Executions

Sie können swf count-closed-workflow-executions verwenden, um die Anzahl geschlossener Workflow Executions für eine bestimmte Domain abzurufen. Sie können Filter angeben, um nur bestimmte Ausführungsklassen zu zählen.

Die Argumente --domain und entweder --close-time-filter oder --start-time-filter sind erforderlich. Alle anderen Argumente sind optional.

aws swf count-closed-workflow-executions \ --domain DataFrobtzz \ --close-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"

Ausgabe:

{ "count": 2, "truncated": false }

Wenn „truncated“ true ist, steht „count“ für die maximale Anzahl, die von Amazon SWF zurückgegeben werden kann. Alle weiteren Ergebnisse werden nicht angezeigt.

So gehen Sie vor, um die Anzahl zurückgegebener Ergebnisse zu reduzieren:

die Werte --close-time-filter oder --start-time-filter ändern, um den durchsuchten Zeitraum einzugrenzen. Beide schließen sich gegenseitig aus: Sie können in einer Anforderung nur einen dieser Werte angeben. Verwenden Sie die Argumente --close-status-filter, --execution-filter, --tag-filter oder --type-filter, um die Ergebnisse weitergehend zu filtern. Diese Argumente schließen sich jedoch auch gegenseitig aus.

Siehe auch CountClosedWorkflowExecutions in der API-Referenz für Amazon Simple Workflow Service

Das folgende Codebeispiel zeigt, wie count-open-workflow-executions verwendet wird.

AWS CLI

So zählen Sie offene Workflow Executions

Sie können swf count-open-workflow-executions verwenden, um die Anzahl offener Workflow Executions für eine bestimmte Domain abzurufen. Sie können Filter angeben, um nur bestimmte Ausführungsklassen zu zählen.

Es sind nur die Argumente --domain und --start-time-filter erforderlich. Alle anderen Argumente sind optional.

aws swf count-open-workflow-executions \ --domain DataFrobtzz \ --start-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"

Ausgabe:

{ "count": 4, "truncated": false }

Wenn „truncated“ true ist, steht „count“ für die maximale Anzahl, die von Amazon SWF zurückgegeben werden kann. Alle weiteren Ergebnisse werden nicht angezeigt.

So gehen Sie vor, um die Anzahl zurückgegebener Ergebnisse zu reduzieren:

die --start-time-filter-Werte ändern, um den durchsuchten Zeitraum einzugrenzen. Verwenden Sie die Argumente, --close-status-filter, --execution-filter, --tag-filter oder --type-filter, um die Ergebnisse weitergehend zu filtern. Beide schließen sich gegenseitig aus: Sie können in einer Anfrage nur eine von diesen angeben.

Weitere Informationen finden Sie unter CountOpenWorkflowExecutions in der API-Referenz für Amazon Simple Storage Service.

Das folgende Codebeispiel zeigt, wie deprecate-domain verwendet wird.

AWS CLI

Kennzeichnen einer Domäne als veraltet

Verwenden Sie swf deprecate-domain, um eine Domäne als veraltet zu kennzeichnen. (Sie können die Domäne dann noch sehen, aber keine neuen Workflow-Ausführungen erstellen oder Typen für die Domäne registrieren.) Der einzige erforderliche Parameter, --name, akzeptiert den Namen der Domäne, die als veraltet gekennzeichnet werden soll.

aws swf deprecate-domain \ --name MyNeatNewDomain ""

Wie bei register-domain wird keine Ausgabe zurückgegeben. Wenn Sie die registrierten Domains mit list-domains abrufen, sehen Sie jedoch, dass die Domain nicht mehr in den zurückgegebenen Daten erscheint.

aws swf list-domains \ --registration-status REGISTERED { "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }

Wenn Sie --registration-status DEPRECATED mit list-domains verwenden, wird Ihre veraltete Domain angezeigt.

aws swf list-domains \ --registration-status DEPRECATED { "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }

Mit describe-domain erhalten Sie weiterhin Informationen über eine veraltete Domain.

aws swf describe-domain \ --name MyNeatNewDomain { "domainInfo": { "status": "DEPRECATED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }

Siehe auch DeprecateDomain in der API-Referenz für Amazon Simple Workflow Service

  • API-Details finden Sie unter DeprecateDomain in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie describe-domain verwendet wird.

AWS CLI

Abrufen von Informationen zu einer Domäne

Verwenden Sie den swf describe-domain-Befehl, wenn Sie detaillierte Informationen zu einer bestimmten Domain abrufen möchten. Es gibt einen erforderlichen Parameter: --name, der den Namen der Domäne akzeptiert, über die Sie Informationen abrufen möchten.

aws swf describe-domain \ --name DataFrobotz { "domainInfo": { "status": "REGISTERED", "name": "DataFrobotz" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "1" } }

Mit describe-domain erhalten Sie auch Informationen über veraltete Domains.

aws swf describe-domain \ --name MyNeatNewDomain { "domainInfo": { "status": "DEPRECATED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }

Siehe auch DescribeDomain in der API-Referenz für Amazon Simple Workflow Service

  • API-Details finden Sie unter DescribeDomain in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-activity-types verwendet wird.

AWS CLI

So listen Sie Aktivitätstypen auf

Verwenden Sie swf list-activity-types, um eine Liste der Aktivitätstypen für eine Domain abzurufen. Es sind nur die Argumente --domain und --registration-status erforderlich.

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED

Ausgabe:

{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.451, "activityType": { "version": "1", "name": "confirm-user-email" }, "description": "subscribe confirm-user-email activity" }, { "status": "REGISTERED", "creationDate": 1371454150.709, "activityType": { "version": "1", "name": "confirm-user-phone" }, "description": "subscribe confirm-user-phone activity" }, { "status": "REGISTERED", "creationDate": 1371454149.871, "activityType": { "version": "1", "name": "get-subscription-info" }, "description": "subscribe get-subscription-info activity" }, { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" }, { "status": "REGISTERED", "creationDate": 1371454150.085, "activityType": { "version": "1", "name": "subscribe-user-sns" }, "description": "subscribe subscribe-user-sns activity" } ] }

Sie können das --name-Argument verwenden, um nur Aktivitätstypen mit einem bestimmten Namen auszuwählen:

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --name "send-subscription-success"

Ausgabe:

{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }

Sie das --maximum-page-size-Argument festlegen, um Ergebnisse seitenweise abzurufen. Wenn mehr Ergebnisse zurückgegeben werden, als auf eine Ergebnisseite passen, wird im der Ergebnissatz ein „nextPageToken“ zurückgegeben:

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2

Ausgabe:

{ "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA1Gp1BelJq+PmHvAnDxJYbup8+0R4LVtbXLDl7QNY7C3OpHo9Sz06D/GuFz1OyC73umBQ1tOPJ/gC/aYpzDMqUIWIA1T9W0s2DryyZX4OC/6Lhk9/o5kdsuWMSBkHhgaZjgwp3WJINIFJFdaSMxY2vYAX7AtRtpcqJuBDDRE9RaRqDGYqIYUMltarkiqpSY1ZVveBasBvlvyUb/WGAaqehiDz7/JzLT/wWNNUMOd+Nhe", "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.451, "activityType": { "version": "1", "name": "confirm-user-email" }, "description": "subscribe confirm-user-email activity" }, { "status": "REGISTERED", "creationDate": 1371454150.709, "activityType": { "version": "1", "name": "confirm-user-phone" }, "description": "subscribe confirm-user-phone activity" } ] }

Sie können den nextPageToken-Wert an den nächsten Aufruf von list-activity-types im --next-page-token-Argument übergeben und so die nächste Ergebnisseite abrufen:

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2 \ --next-page-token "AAAAKgAAAAEAAAAAAAAAA1Gp1BelJq+PmHvAnDxJYbup8+0R4LVtbXLDl7QNY7C3OpHo9Sz06D/GuFz1OyC73umBQ1tOPJ/gC/aYpzDMqUIWIA1T9W0s2DryyZX4OC/6Lhk9/o5kdsuWMSBkHhgaZjgwp3WJINIFJFdaSMxY2vYAX7AtRtpcqJuBDDRE9RaRqDGYqIYUMltarkiqpSY1ZVveBasBvlvyUb/WGAaqehiDz7/JzLT/wWNNUMOd+Nhe"

Ausgabe:

{ "nextPageToken": "AAAAKgAAAAEAAAAAAAAAAw+7LZ4GRZPzTqBHsp2wBxWB8m1sgLCclgCuq3J+h/m3+vOfFqtkcjLwV5cc4OjNAzTCuq/XcylPumGwkjbajtqpZpbqOcVNfjFxGoi0LB2Olbvv0krbUISBvlpFPmSWpDSZJsxg5UxCcweteSlFn1PNSZ/MoinBZo8OTkjMuzcsTuKOzH9wCaR8ITcALJ3SaqHU3pyIRS5hPmFA3OLIc8zaAepjlaujo6hntNSCruB4" "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454149.871, "activityType": { "version": "1", "name": "get-subscription-info" }, "description": "subscribe get-subscription-info activity" }, { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }

Wenn noch mehr Ergebnisse zurückgegeben werden müssen, wird „nextPageToken“ zusammen mit den Ergebnissen zurückgegeben. Wenn keine zusätzlichen Ergebnisseiten vorhanden sind, wird „nextPageToken“ nicht im Ergebnissatz zurückgegeben.

Sie können das --reverse-order-Argument verwenden, um die Reihenfolge der zurückgegebenen Ergebnisse umzukehren. Dies wirkt sich auch auf Seitenergebnisse aus.

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2 \ --reverse-order

Ausgabe:

{ "nextPageToken": "AAAAKgAAAAEAAAAAAAAAAwXcpu5ePSyQkrC+8WMbmSrenuZC2ZkIXQYBPB/b9xIOVkj+bMEFhGj0KmmJ4rF7iddhjf7UMYCsfGkEn7mk+yMCgVc1JxDWmB0EH46bhcmcLmYNQihMDmUWocpr7To6/R7CLu0St1gkFayxOidJXErQW0zdNfQaIWAnF/cwioBbXlkz1fQzmDeU3M5oYGMPQIrUqkPq7pMEW0q0lK5eDN97NzFYdZZ/rlcLDWPZhUjY", "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.085, "activityType": { "version": "1", "name": "subscribe-user-sns" }, "description": "subscribe subscribe-user-sns activity" }, { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }

Siehe auch ListActivityTypes in der API-Referenz für Amazon Simple Workflow Service

Das folgende Codebeispiel zeigt, wie list-domains verwendet wird.

AWS CLI

Beispiel 1: So listen Sie Ihre registrierten Domains auf

Das folgende list-domains-Befehlsbeispiel listet die REGISTERED-SWF-Domänen auf, die Sie für Ihr Konto registriert haben.

aws swf list-domains \ --registration-status REGISTERED

Ausgabe:

{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }

Weitere Informationen finden Sie unter ListDomains in der API-Referenz zu Amazon Simple Storage Service.

Beispiel 2: So listen Sie Ihre veralteten Domains auf

Das folgende list-domains-Befehlsbeispiel listet die DEPRECATED-SWF-Domänen auf, die Sie für Ihr Konto registriert haben. Veraltete Domains sind Domains, die keine neuen Workflows oder Aktivitäten registrieren können, aber trotzdem abgefragt werden können.

aws swf list-domains \ --registration-status DEPRECATED

Ausgabe:

{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }

Weitere Informationen finden Sie unter ListDomains in der API-Referenz zu Amazon Simple Storage Service.

Beispiel 3: So listen Sie die erste Seite registrierter Domains auf

Das folgende list-domains-Befehlsbeispiel listet die erste Seite der REGISTERED-SWF-Domänen auf, die Sie mit der Option --maximum-page-size für Ihr Konto registriert haben.

aws swf list-domains \ --registration-status REGISTERED \ --maximum-page-size 1

Ausgabe:

{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }

Weitere Informationen finden Sie unter ListDomains in der API-Referenz zu Amazon Simple Storage Service.

Beispiel 4: So listen Sie die angegebene einzelne Seite registrierter Domains auf

Das folgende list-domains-Befehlsbeispiel listet die erste Seite der REGISTERED-SWF-Domänen auf, die Sie mit der Option --maximum-page-size für Ihr Konto registriert haben.

Wenn Sie den Aufruf erneut senden und dabei den Wert von nextPageToken im Argument --next-page-token bereitstellen, erhalten Sie eine weitere Seite von Ergebnissen.

aws swf list-domains \ --registration-status REGISTERED \ --maximum-page-size 1 \ --next-page-token "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="

Ausgabe:

{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }

Wenn keine zusätzlichen Ergebnisseiten vorhanden sind, wird nextPageToken nicht in den Ergebnissen zurückgegeben.

Weitere Informationen finden Sie unter ListDomains in der API-Referenz zu Amazon Simple Storage Service.

  • API-Details finden Sie unter ListDomains in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-workflow-types verwendet wird.

AWS CLI

So listen Sie Workflow-Typen auf

Verwenden Sie swf list-workflow-types, um eine Liste der Workflow-Typen für eine Domain abzurufen. Es sind nur die Argumente --domain und --registration-status erforderlich. Hier ein einfaches Beispiel.

aws swf list-workflow-types \ --domain DataFrobtzz \ --registration-status REGISTERED

Ausgabe:

{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454149.598, "description": "DataFrobtzz subscribe workflow", "workflowType": { "version": "v3", "name": "subscribe" } } ] }

Wie bei list-activity-types, können Sie das --name-Argument verwenden, um nur Workflow-Typen mit einem bestimmten Namen auszuwählen und das --maximum-page-size-Argument in Abstimmung mit --next-page-token zu Seitenergebnissen verwenden. Verwenden Sie --reverse-order, um die Reihenfolge umzukehren, in der Ergebnisse zurückgegeben werden.

Siehe auch ListWorkflowTypes in der API-Referenz für Amazon Simple Workflow Service

Das folgende Codebeispiel zeigt, wie register-domain verwendet wird.

AWS CLI

Registrieren einer Domäne

Sie können die AWS-CLI verwenden, um neue Domains zu registrieren. Verwenden Sie den swf register-domain-Befehl. Es gibt zwei erforderliche Parameter: --name, der den Domainnamen aufnimmt, und --workflow-execution-retention-period-in-days, der eine Ganzzahl für Angabe der Anzahl von Tagen aufnimmt, für die Workflow-Ausführungsdaten in dieser Domain aufbewahrt werden, nämlich maximal 90 Tage. (Weitere Informationen finden Sie in den häufig gestellten Fragen für SWF unter <https://aws.amazon.com/swf/faqs/#retain_limit>). Workflow Execution-Daten werden nach Ablauf der angegebenen Anzahl von Tagen nicht mehr aufbewahrt.

aws swf register-domain \ --name MyNeatNewDomain \ --workflow-execution-retention-period-in-days 0 ""

Wenn Sie eine Domäne registrieren, wird nichts zurückgegeben (""). Sie können aber swf list-domains oder swf describe-domain verwenden, um die neue Domäne zu sehen.

aws swf list-domains \ --registration-status REGISTERED { "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "MyNeatNewDomain" }, { "status": "REGISTERED", "name": "erontest" } ] }

Verwenden von swf describe-domain:

aws swf describe-domain --name MyNeatNewDomain { "domainInfo": { "status": "REGISTERED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }

Siehe auch RegisterDomain in der API-Referenz für Amazon Simple Workflow Service

  • API-Details finden Sie unter RegisterDomain in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie register-workflow-type verwendet wird.

AWS CLI

Registrieren eines Workflow-Typs

Verwenden Sie den swf register-workflow-type-Befehl, um einen Workflow-Typ bei der AWS-CLI zu registrieren.

aws swf register-workflow-type \ --domain DataFrobtzz \ --name "MySimpleWorkflow" \ --workflow-version "v1"

Falls erfolgreich, erzeugt dieser Befehl keine Ausgabe.

Bei einem Fehler (wenn Sie beispielsweise versuchen, denselben Workflow-Typ zweimal zu registrieren oder eine Domain angeben, die nicht existiert), erhalten Sie eine Antwort in JSON.

{ "message": "WorkflowType=[name=MySimpleWorkflow, version=v1]", "__type": "com.amazonaws.swf.base.model#TypeAlreadyExistsFault" }

Die Schlüssel --domain, --name und --workflow-version sind erforderlich. Sie können auch die Workflow-Beschreibung, die Timeouts und die untergeordneten Workflow-Richtlinie festlegen.

Weitere Informationen finden Sie unter RegisterWorkflowType in der API-Referenz zu Amazon Simple Workflow Service.