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-executionsverwenden, 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
--domainund entweder--close-time-filteroder--start-time-filtersind erforderlich. Alle anderen Argumente sind optional.aws swf count-closed-workflow-executions \ --domainDataFrobtzz\ --close-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"Ausgabe:
{ "count": 2, "truncated": false }Wenn „truncated“
trueist, 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-filteroder--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-filteroder--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
-
API-Details finden Sie unter CountClosedWorkflowExecutions
in der AWS CLI-Befehlsreferenz.
-
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-executionsverwenden, 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
--domainund--start-time-filtererforderlich. Alle anderen Argumente sind optional.aws swf count-open-workflow-executions \ --domainDataFrobtzz\ --start-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"Ausgabe:
{ "count": 4, "truncated": false }Wenn „truncated“
trueist, 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-filteroder--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.
-
API-Details finden Sie unter CountOpenWorkflowExecutions
in der AWS CLI-Befehlsreferenz.
-
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 \ --nameMyNeatNewDomain""Wie bei
register-domainwird keine Ausgabe zurückgegeben. Wenn Sie die registrierten Domains mitlist-domainsabrufen, sehen Sie jedoch, dass die Domain nicht mehr in den zurückgegebenen Daten erscheint.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"erontest"}]}Wenn Sie
--registration-status DEPRECATEDmitlist-domainsverwenden, wird Ihre veraltete Domain angezeigt.aws swf list-domains \ --registration-statusDEPRECATED{"domainInfos":[{"status": "DEPRECATED", "name":"MyNeatNewDomain"}]}Mit
describe-domainerhalten Sie weiterhin Informationen über eine veraltete Domain.aws swf describe-domain \ --nameMyNeatNewDomain{"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 \ --nameDataFrobotz{"domainInfo":{"status": "REGISTERED", "name":"DataFrobotz"},"configuration":{"workflowExecutionRetentionPeriodInDays":"1"}}Mit
describe-domainerhalten Sie auch Informationen über veraltete Domains.aws swf describe-domain \ --nameMyNeatNewDomain{"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--domainund--registration-statuserforderlich.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDAusgabe:
{ "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 \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --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 \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2Ausgabe:
{ "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-typesim--next-page-token-Argument übergeben und so die nächste Ergebnisseite abrufen:aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2\ --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 \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2\ --reverse-orderAusgabe:
{ "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
-
API-Details finden Sie unter ListActivityTypes
in der AWS CLI-Befehlsreferenz.
-
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 dieREGISTERED-SWF-Domänen auf, die Sie für Ihr Konto registriert haben.aws swf list-domains \ --registration-statusREGISTEREDAusgabe:
{ "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 dieDEPRECATED-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-statusDEPRECATEDAusgabe:
{ "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 derREGISTERED-SWF-Domänen auf, die Sie mit der Option--maximum-page-sizefür Ihr Konto registriert haben.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1Ausgabe:
{ "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 derREGISTERED-SWF-Domänen auf, die Sie mit der Option--maximum-page-sizefür Ihr Konto registriert haben.Wenn Sie den Aufruf erneut senden und dabei den Wert von
nextPageTokenim Argument--next-page-tokenbereitstellen, erhalten Sie eine weitere Seite von Ergebnissen.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1\ --next-page-token"AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="Ausgabe:
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }Wenn keine zusätzlichen Ergebnisseiten vorhanden sind, wird
nextPageTokennicht 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--domainund--registration-statuserforderlich. Hier ein einfaches Beispiel.aws swf list-workflow-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDAusgabe:
{ "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-tokenzu 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
-
API-Details finden Sie unter ListWorkflowTypes
in der AWS CLI-Befehlsreferenz.
-
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 \ --nameMyNeatNewDomain\ --workflow-execution-retention-period-in-days0""Wenn Sie eine Domäne registrieren, wird nichts zurückgegeben (""). Sie können aber
swf list-domainsoderswf describe-domainverwenden, um die neue Domäne zu sehen.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"MyNeatNewDomain"},{"status": "REGISTERED", "name":"erontest"}]}Verwenden von
swf describe-domain:aws swf describe-domain --nameMyNeatNewDomain{"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 \ --domainDataFrobtzz\ --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,--nameund--workflow-versionsind 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.
-
API-Details finden Sie unter RegisterWorkflowType
in der AWS CLI-Befehlsreferenz.
-