기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS::Serverless::StateMachine
AWS Lambda 함수 및 기타 AWS 리소스를 오케스트레이션하여 복잡하고 강력한 워크플로를 구성하는 데 사용할 수 있는 AWS Step Functions 상태 머신을 만듭니다.
계단 함수에 대한 자세한 내용은 AWS Step Functions 개발자 가이드를 참조하세요.
참고
에 AWS CloudFormation배포하면 AWS SAM 리소스를 리소스로 AWS SAM AWS CloudFormation 변환합니다. 자세한 정보는 생성된 AWS CloudFormation 리소스을 참조하세요.
구문
AWS Serverless Application Model (AWS SAM) 템플릿에서 이 엔티티를 선언하려면 다음 구문을 사용하십시오.
YAML
Type: AWS::Serverless::StateMachine Properties: AutoPublishAlias:
String
Definition:Map
DefinitionSubstitutions:Map
DefinitionUri:String | S3Location
DeploymentPreference:DeploymentPreference
Events:EventSource
Logging:LoggingConfiguration
Name:String
PermissionsBoundary:String
Policies:String | List | Map
PropagateTags:Boolean
RolePath:String
Role:String
Tags:Map
Tracing:TracingConfiguration
Type:String
속성
-
AutoPublishAlias
-
상태 기기 별칭의 이름입니다. 계단 함수 상태 기기 별칭을 사용하는 방법에 대해 자세히 알아보려면 개발자 가이드의 AWS Step Functions 버전 및 별칭을 사용한 지속적 배포 관리를 참조하세요.
별칭에 대한 배포 기본 설정을 구성하는데
DeploymentPreference
을 사용합니다.DeploymentPreference
지정하지 않으면 트래픽을 최신 스테이트 머신 버전으로 한 번에 전환하도록 구성합니다. AWS SAMAWS SAM
Retain
기본적으로 버전DeletionPolicy
및UpdateReplacePolicy
to를 설정합니다. 이전 버전은 자동으로 삭제되지 않습니다.타입: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은
AWS::StepFunctions::StateMachineAlias
리소스의Name
속성으로 직접 전달됩니다. -
Definition
-
스테이트 머신 정의는 개체 형식이 AWS SAM 템플릿 파일의 형식 (예: JSON 또는 YAML) 과 일치하는 개체입니다. 상태 기기 정의는 Amazon States Language를 따릅니다.
인라인 스테이트 기기 정의의 예는 예을 참조하세요.
Definition
또는DefinitionUri
를 제공해야 합니다.유형: 맵
필수 항목 여부: 조건부
AWS CloudFormation 호환성: 이 속성은 AWS SAM 고유하며 이에 상응하는 AWS CloudFormation 속성이 없습니다.
-
DefinitionSubstitutions
-
스테이트 머신 정의의 자리 표시자 변수 매핑을 지정하는 string-to-string 맵입니다. 이를 통해 런타임에 얻은 값(예: 내장 함수)을 상태 기기 정의에 삽입할 수 있습니다.
유형: 맵
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은 리소스의
DefinitionSubstitutions
속성과 유사합니다.AWS::StepFunctions::StateMachine
인라인 스테이트 머신 정의에 내장 함수가 지정된 경우 이 속성에 항목을 AWS SAM 추가하여 스테이트 머신 정의에 삽입합니다. -
DefinitionUri
-
Amazon Simple Storage Service(S3) URI 또는 Amazon States Language 내 기재된 상태 기기 정의의 로컬 파일 경로입니다.
로컬 파일 경로를 제공하는 경우 템플릿은
sam deploy
또는sam package
명령이 포함된 워크플로를 거쳐야 정의를 올바르게 변환할 수 있습니다. 이렇게 하려면 AWS SAM CLI의 버전 0.52.0 이상을 사용해야 합니다.Definition
또는DefinitionUri
를 제공해야 합니다.유형: 문자열 | S3Location
필수 항목 여부: 조건부
AWS CloudFormation 호환성: 이 속성은 리소스의 속성에 직접 전달됩니다.
DefinitionS3Location
AWS::StepFunctions::StateMachine
-
DeploymentPreference
-
점진적 상태 기기 배포를 활성화하고 구성하는 설정입니다. 계단 함수의 점진적 배포에 대해 자세히 알아보려면 개발자 가이드의 AWS Step Functions 버전 및 별칭을 사용한 지속적 배포 관리를 참조하세요.
이 속성을 구성하기 전에
AutoPublishAlias
을 지정하십시오.DeploymentPreference
설정이AutoPublishAlias
와 함께 지정된 별칭에 적용됩니다.DeploymentPreference
지정하면StateMachineVersionArn
하위 속성 값이 자동으로 AWS SAM 생성됩니다.필수 항목 여부: 아니요
AWS CloudFormation 호환성:
StateMachineVersionArn
속성 값을 AWS SAM 생성하여DeploymentPreference
AWS::StepFunctions::StateMachineAlias
리소스 속성에 연결하고 리소스의DeploymentPreference
속성에 전달합니다DeploymentPreference
. -
Events
-
이 상태 기기를 촉발하는 이벤트를 지정합니다. 이벤트는 유형 및 각 유형에 따라 달라지는 속성 집합으로 구성됩니다.
유형: EventSource
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은 AWS SAM 고유하며 AWS CloudFormation 이에 상응하는 속성이 없습니다.
-
Logging
-
어떤 실행 기록 이벤트가 로그되는지, 또한 어디에서 로그되는지 정의합니다.
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은
AWS::StepFunctions::StateMachine
리소스의LoggingConfiguration
속성으로 직접 전달됩니다. -
Name
-
상태 기기의 이름입니다.
타입: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은
AWS::StepFunctions::StateMachine
리소스의StateMachineName
속성에 직접 전달됩니다. -
PermissionsBoundary
-
이 상태 기기의 실행 역할에 사용할 권한 경계의 ARN. 이 속성은 역할이 자동으로 생성된 경우에만 작동합니다.
타입: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은
AWS::IAM::Role
리소스의PermissionsBoundary
속성에 직접 전달됩니다. -
Policies
-
이 상태 기기의 권한 정책입니다. 정책은 스테이트 머신의 기본 AWS Identity and Access Management (IAM) 실행 역할에 추가됩니다.
이 속성은 단일 값 또는 값 목록을 허용합니다. 허용되는 값은 다음과 같습니다.
-
맵 형식의 YAML 인라인 IAM 정책입니다.
참고
Role
속성을 설정하면 이 속성은 무시됩니다.유형: 문자열 | 목록 | 맵
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은 AWS SAM 고유하며 AWS CloudFormation 이에 상응하는 속성이 없습니다.
-
Tags
속성의 태그를 AWS::Serverless::StateMachine 생성된 리소스로 전달할지 여부를 지정합니다. 귀하의 생성된 리소스에 태그를 전파하도록True
을 지정합니다.유형: 부울
필수 항목 여부: 아니요
기본값:
False
AWS CloudFormation 호환성: 이 속성은 AWS SAM 고유하며 AWS CloudFormation 이에 상응하는 속성이 없습니다.
-
Role
-
이 상태 기기의 실행 역할로 사용할 IAM 역할의 ARN.
타입: 문자열
필수 항목 여부: 조건부
AWS CloudFormation 호환성: 이 속성은
AWS::StepFunctions::StateMachine
리소스의RoleArn
속성으로 직접 전달됩니다. -
RolePath
-
상태 기기의 IAM 실행 역할 경로입니다.
역할이 자동으로 생성될 때 이 속성을 사용하십시오.
Role
속성에 역할이 지정된 경우에는 사용하지 마십시오.타입: 문자열
필수 항목 여부: 조건부
AWS CloudFormation 호환성: 이 속성은
AWS::IAM::Role
리소스의Path
속성에 직접 전달됩니다. -
스테이트 머신에 추가된 태그와 해당 실행 역할을 지정하는 string-to-string 맵입니다. 태그의 유효한 키와 값에 대한 자세한 내용은 리소스의 AWS::StepFunctions::StateMachine태그 속성을 참조하세요.
유형: 맵
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은
AWS::StepFunctions::StateMachine
리소스의Tags
속성과 유사합니다. AWS SAM 이 리소스와 해당 리소스에 대해 생성된 기본 역할에stateMachine:createdBy:SAM
태그를 자동으로 추가합니다. -
Tracing
-
상태 머신의 활성화 AWS X-Ray 여부를 선택합니다. Step Functions와 함께 X-Ray를 사용하는 방법에 대한 자세한 내용은 AWS X-Ray 개발자 가이드의 AWS Step Functions 계단 함수를 참조하세요.
필수 항목 여부: 아니요
AWS CloudFormation 호환성: 이 속성은
AWS::StepFunctions::StateMachine
리소스의TracingConfiguration
속성으로 직접 전달됩니다. -
Type
-
상태 기기의 이름입니다.
유효한 값:
STANDARD
또는EXPRESS
타입: 문자열
필수 항목 여부: 아니요
기본값:
STANDARD
AWS CloudFormation 호환성: 이 속성은
AWS::StepFunctions::StateMachine
리소스의StateMachineType
속성에 직접 전달됩니다.
반환 값
Ref
이 리소스의 논리적 ID를 Ref 내장 함수에 전달하면 Ref가 기저의 AWS::StepFunctions::StateMachine
리소스의 Amazon 리소스 이름(ARN)을 반환합니다.
Ref
함수에 대한 자세한 내용은 Ref
사용자 가이드의 AWS CloudFormation 를 참조하십시오.
팬:: GetAtt
Fn::GetAtt
은 이 유형의 지정된 속성에 대한 값을 반환합니다. 다음은 사용 가능한 속성과 반환되는 샘플 값.
Fn::GetAtt
의 사용에 대한 자세한 내용은 AWS CloudFormation 사용자 가이드의 Fn::GetAtt
섹션을 참조하세요.
Name
-
HelloWorld-StateMachine
과 같은 상태 기기의 이름을 반환합니다.
예
스테이트 기기 정의 파일
다음은 람다 함수가 스테이트 머신을 호출할 수 있도록 하는 인라인 스테이트 머신 정의의 예시입니다. 참고로 이 예시에서는 Role
속성이 호출을 허용하도록 적절한 정책을 구성할 것으로 예상합니다. my_state_machine.asl.json
파일은 Amazon States Language 로 작성해야 합니다.
이 예제에서는 DefinitionSubstitution
항목을 사용하여 AWS SAM 템플릿 파일에 선언된 리소스를 상태 시스템에 포함할 수 있습니다.
YAML
MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionUri: statemachine/my_state_machine.asl.json Role: arn:aws:iam::123456123456:role/service-role/my-sample-role Tracing: Enabled: true DefinitionSubstitutions: MyFunctionArn: !GetAtt MyFunction.Arn MyDDBTable: !Ref TransactionTable
인라인 상태 기기 정의
다음은 인라인 상태 기기 정의의 예입니다.
이 예제에서 AWS SAM 템플릿 파일은 YAML로 작성되므로 스테이트 머신 정의도 YAML에 있습니다. 인라인 스테이트 머신 정의를 JSON으로 선언하려면 템플릿 파일을 JSON으로 작성하십시오. AWS SAM
YAML
MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: Definition: StartAt: MyLambdaState States: MyLambdaState: Type: Task Resource: arn:aws:lambda:us-east-1:123456123456:function:my-sample-lambda-app End: true Role: arn:aws:iam::123456123456:role/service-role/my-sample-role Tracing: Enabled: true