AWS::Serverless::StateMachine - AWS Serverless Application Model

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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 SAM

AWS SAM Retain기본적으로 버전 DeletionPolicyUpdateReplacePolicy 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 생성됩니다.

입력: DeploymentPreference

필수 항목 여부: 아니요

AWS CloudFormation 호환성: StateMachineVersionArn 속성 값을 AWS SAM 생성하여 DeploymentPreference AWS::StepFunctions::StateMachineAlias 리소스 속성에 연결하고 리소스의 DeploymentPreference 속성에 전달합니다DeploymentPreference.

Events

이 상태 기기를 촉발하는 이벤트를 지정합니다. 이벤트는 유형 및 각 유형에 따라 달라지는 속성 집합으로 구성됩니다.

유형: EventSource

필수 항목 여부: 아니요

AWS CloudFormation 호환성: 이 속성은 AWS SAM 고유하며 AWS CloudFormation 이에 상응하는 속성이 없습니다.

Logging

어떤 실행 기록 이벤트가 로그되는지, 또한 어디에서 로그되는지 정의합니다.

유형: LoggingConfiguration

필수 항목 여부: 아니요

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) 실행 역할에 추가됩니다.

이 속성은 단일 값 또는 값 목록을 허용합니다. 허용되는 값은 다음과 같습니다.

참고

Role 속성을 설정하면 이 속성은 무시됩니다.

유형: 문자열 | 목록 | 맵

필수 항목 여부: 아니요

AWS CloudFormation 호환성: 이 속성은 AWS SAM 고유하며 AWS CloudFormation 이에 상응하는 속성이 없습니다.

PropagateTags

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 속성에 직접 전달됩니다.

Tags

스테이트 머신에 추가된 태그와 해당 실행 역할을 지정하는 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 계단 함수를 참조하세요.

유형: TracingConfiguration

필수 항목 여부: 아니요

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