Doc AWS SDK 예제 GitHub 리포지토리에서 더 많은 SDK 예제를 사용할 수 있습니다. AWS
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용한 Amazon SWF 예제 AWS CLI
다음 코드 예제에서는 Amazon SWF와 AWS Command Line Interface 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시에서는 count-closed-workflow-executions의 사용 방법을 보여줍니다.
- AWS CLI
-
종료된 워크플로 실행 수 계산
swf count-closed-workflow-executions를 사용하면 지정된 도메인에서 종료된 워크플로 실행 수를 가져올 수 있습니다. 필터를 지정하면 특정 실행 클래스를 계산할 수 있습니다.--domain및--close-time-filter또는--start-time-filter인수가 필요합니다. 다른 모든 인수는 선택 사항입니다.aws swf count-closed-workflow-executions \ --domainDataFrobtzz\ --close-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"출력:
{ "count": 2, "truncated": false }'truncated'가
true이면 'count'는 Amazon SWF에서 반환할 수 있는 최대 수를 나타냅니다. 추가 결과는 잘립니다.반환되는 결과 수를 줄이려면 다음을 수행할 수 있습니다.
--close-time-filter또는--start-time-filter값을 수정하여 검색되는 시간 범위를 좁힙니다. 각 항목은 서로 함께 사용할 수 없습니다. 요청에서 이 중 하나만 지정할 수 있습니다.--close-status-filter,--execution-filter,--tag-filter또는--type-filter인수를 사용하면 결과를 추가로 필터링할 수 있습니다. 단, 이러한 인수는 서로 함께 사용할 수 없습니다.또한 Amazon Simple Workflow Service API 참조의 CountClosedWorkflowExecutions도 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CountClosedWorkflowExecutions
를 참조하세요.
-
다음 코드 예시에서는 count-open-workflow-executions의 사용 방법을 보여줍니다.
- AWS CLI
-
진행 중인 워크플로 실행 수 계산
swf count-open-workflow-executions를 사용하여 지정된 도메인에서 진행 중인 워크플로 실행 수를 가져올 수 있습니다. 필터를 지정하면 특정 실행 클래스를 계산할 수 있습니다.--domain및--start-time-filter인수는 필수입니다. 다른 모든 인수는 선택 사항입니다.aws swf count-open-workflow-executions \ --domainDataFrobtzz\ --start-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"출력:
{ "count": 4, "truncated": false }'truncated'가
true이면 'count'는 Amazon SWF에서 반환할 수 있는 최대 수를 나타냅니다. 추가 결과는 잘립니다.반환되는 결과 수를 줄이려면 다음을 수행할 수 있습니다.
--start-time-filter값을 수정하여 검색되는 시간 범위를 좁히고,--close-status-filter,--execution-filter,--tag-filter또는--type-filter인수를 사용하여 결과를 추가로 필터링할 수 있습니다. 각 항목은 서로 함께 사용할 수 없습니다. 요청에서 이 중 하나만 지정할 수 있습니다.자세한 내용은 Amazon Simple Workflow Service API 참조의 CountOpenWorkflowExecutions를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CountOpenWorkflowExecutions
를 참조하세요.
-
다음 코드 예시에서는 deprecate-domain의 사용 방법을 보여줍니다.
- AWS CLI
-
도메인 사용 중지
도메인을 사용 중지하려면(도메인을 여전히 볼 수 있지만 해당 도메인에서 새 워크플로 실행을 생성하거나 유형을 등록할 수 없음)
swf deprecate-domain을 사용합니다. 필수 파라미터가 하나 있으며--name입니다. 이 파라미터는 사용 중지할 도메인의 이름을 가져옵니다.aws swf deprecate-domain \ --nameMyNeatNewDomain""register-domain을 사용했을 때와 마찬가지로 출력이 반환되지 않습니다.list-domains를 사용하여 등록된 도메인을 확인하면 해당 도메인이 사용 중지되어 더 이상 반환된 데이터에 표시되지 않는 것을 볼 수 있습니다.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"erontest"}]}list-domains와 함께--registration-status DEPRECATED를 사용하면 더 이상 사용되지 않는 도메인이 표시됩니다.aws swf list-domains \ --registration-statusDEPRECATED{"domainInfos":[{"status": "DEPRECATED", "name":"MyNeatNewDomain"}]}또한
describe-domain을 사용하여 사용 중지된 도메인의 정보를 가져올 수 있습니다.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}또한 Amazon Simple Workflow Service API 참조의 DeprecateDomain도 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeprecateDomain
을 참조하세요.
-
다음 코드 예시에서는 describe-domain의 사용 방법을 보여줍니다.
- AWS CLI
-
도메인 정보 가져오기
특정 도메인의 세부 정보를 가져오려면
swf describe-domain을 사용합니다. 필수 파라미터가 하나 있으며--name입니다. 이 파라미터는 정보를 확인할 도메인의 이름을 가져옵니다.aws swf describe-domain \ --nameDataFrobotz{"domainInfo":{"status": "REGISTERED", "name":"DataFrobotz"},"configuration":{"workflowExecutionRetentionPeriodInDays":"1"}}또한
describe-domain을 사용하여 사용 중지된 도메인의 정보를 가져올 수 있습니다.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}또한 Amazon Simple Workflow Service API 참조의 DescribeDomain도 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeDomain
을 참조하세요.
-
다음 코드 예시에서는 list-activity-types의 사용 방법을 보여줍니다.
- AWS CLI
-
활동 유형 나열
도메인의 활동 유형 목록을 가져오려면
swf list-activity-types를 사용합니다.--domain및--registration-status인수는 필수입니다.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED출력:
{ "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" } ] }--name인수를 사용하면 특정 이름의 활동 유형만 선택할 수 있습니다.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --name"send-subscription-success"출력:
{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }페이지의 결과를 가져오려면
--maximum-page-size인수를 설정하면 됩니다. 한 결과 페이지를 넘어가는 더 많은 결과가 반환되면 결과 세트에 ‘nextPageToken’이 반환됩니다.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2출력:
{ "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" } ] }--next-page-token인수의list-activity-types에 대한 다음 번 직접적 호출에 nextPageToken 값을 전달하면 결과의 다음 페이지를 가져올 수 있습니다.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"출력:
{ "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" } ] }반환할 결과가 아직 더 있는 경우 'nextPageToken'이 결과와 함께 반환됩니다. 더 이상 가져올 결과 페이지가 없으면 ‘nextPageToken’이 결과 세트에 반환되지 않습니다.
--reverse-order인수를 사용하면 반환된 결과의 순서를 반대로 만들 수 있습니다. 이는 페이지 지정된 결과에도 영향을 미칩니다.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2\ --reverse-order출력:
{ "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" } ] }또한 Amazon Simple Workflow Service API 참조의 ListActivityTypes도 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListActivityTypes
를 참조하세요.
-
다음 코드 예시에서는 list-domains의 사용 방법을 보여줍니다.
- AWS CLI
-
예시 1: 등록된 도메인 나열
다음
list-domains명령 예시에서는 계정에 등록된REGISTEREDSWF 도메인을 나열합니다.aws swf list-domains \ --registration-statusREGISTERED출력:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }자세한 내용은 Amazon Simple Workflow Service API 참조의 ListDomains를 참조하세요.
예시 2: 사용 중지된 도메인 나열
다음
list-domains명령 예시에서는 계정에 등록된DEPRECATEDSWF 도메인을 나열합니다. 사용 중지된 도메인은 새 워크플로 또는 활동을 등록할 수 없지만 여전히 쿼리는 받을 수 있는 도메인입니다.aws swf list-domains \ --registration-statusDEPRECATED출력:
{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }자세한 내용은 Amazon Simple Workflow Service API 참조의 ListDomains를 참조하세요.
예시 3: 등록된 도메인의 첫 페이지 나열
다음
list-domains명령 예시에서는--maximum-page-size옵션을 통해 계정에 등록된REGISTEREDSWF 도메인의 첫 페이지를 나열합니다.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1출력:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }자세한 내용은 Amazon Simple Workflow Service API 참조의 ListDomains를 참조하세요.
예시 4: 등록된 도메인의 지정된 단일 페이지 나열
다음
list-domains명령 예시에서는--maximum-page-size옵션을 통해 계정에 등록된REGISTEREDSWF 도메인의 첫 페이지를 나열합니다.nextPageToken인수에--next-page-token값을 입력하여 다시 직접적으로 호출하면 다른 결과 페이지가 나옵니다.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1\ --next-page-token"AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="출력:
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }더 이상 가져올 결과 페이지가 없으면
nextPageToken이 결과에 반환됩니다.자세한 내용은 Amazon Simple Workflow Service API 참조의 ListDomains를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListDomains
를 참조하세요.
-
다음 코드 예시에서는 list-workflow-types의 사용 방법을 보여줍니다.
- AWS CLI
-
워크플로 유형 나열
도메인의 워크플로 유형 목록을 가져오려면
swf list-workflow-types를 사용합니다.--domain및--registration-status인수는 필수입니다. 다음은 간단한 예시입니다.aws swf list-workflow-types \ --domainDataFrobtzz\ --registration-statusREGISTERED출력:
{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454149.598, "description": "DataFrobtzz subscribe workflow", "workflowType": { "version": "v3", "name": "subscribe" } } ] }list-activity-types를 사용할 때와 마찬가지로--name인수를 사용하여 특정 이름의 워크플로 유형만 선택하고--next-page-token과 함께--maximum-page-size인수를 사용하여 결과를 페이지 지정할 수 있습니다. 결과가 반환되는 순서를 반대로 하려면--reverse-order를 사용합니다.또한 Amazon Simple Workflow Service API 참조의 ListWorkflowTypes도 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListWorkflowTypes
를 참조하세요.
-
다음 코드 예시에서는 register-domain의 사용 방법을 보여줍니다.
- AWS CLI
-
도메인 등록
AWS CLI를 사용하여 새 도메인을 등록할 수 있습니다.
swf register-domain명령을 사용합니다. 필수 파라미터가 두 개 있습니다.--name은 도메인 이름을 가져오고--workflow-execution-retention-period-in-days는 이 도메인에서 워크플로 실행 데이터를 유지하는 기간(일)을 최대 90일로 지정하는 정수를 가져옵니다(자세한 내용은 SWF FAQ<https://aws.amazon.com/swf/faqs/#retain_limit> 참조). 지정된 기간이 경과한 후에는 워크플로 실행 데이터가 유지되지 않습니다.aws swf register-domain \ --nameMyNeatNewDomain\ --workflow-execution-retention-period-in-days0""도메인을 등록하면 아무것도 반환되지 않지만("")
swf list-domains또는swf describe-domain을 사용하면 새 도메인을 볼 수 있습니다.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"MyNeatNewDomain"},{"status": "REGISTERED", "name":"erontest"}]}swf describe-domain사용:aws swf describe-domain --nameMyNeatNewDomain{"domainInfo":{"status": "REGISTERED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}또한 Amazon Simple Workflow Service API 참조의 RegisterDomain도 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 RegisterDomain
을 참조하세요.
-
다음 코드 예시에서는 register-workflow-type의 사용 방법을 보여줍니다.
- AWS CLI
-
워크플로 유형 등록
AWS CLI에 워크플로 유형을 등록하려면
swf register-workflow-type명령을 사용합니다.aws swf register-workflow-type \ --domainDataFrobtzz\ --name"MySimpleWorkflow"\ --workflow-version"v1"이 명령은 성공 시 출력을 생성하지 않습니다.
오류(예: 동일한 워크플로 유형을 2회 등록하거나 존재하지 않는 도메인을 지정하려는 경우)가 발생하면 JSON에서 응답을 받게 됩니다.
{ "message": "WorkflowType=[name=MySimpleWorkflow, version=v1]", "__type": "com.amazonaws.swf.base.model#TypeAlreadyExistsFault" }--domain,--name및--workflow-version은 필수입니다. 워크플로 설명, 제한 시간 및 하위 워크플로 정책을 설정할 수도 있습니다.자세한 내용은 Amazon Simple Workflow Service API 참조의 ListDomains를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 RegisterWorkflowType
을 참조하세요.
-