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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS::Serverless::StateMachine

AWS Step Functions ステートマシンを作成します。ステートマシンを使用して、 AWS Lambda 関数やその他の AWS リソースをオーケストレーションし、複雑で堅牢なワークフローを形成できます。

Step Functions の詳細については、AWS Step Functions デベロッパーガイドを参照してください。

注記

にデプロイすると AWS CloudFormation、 は AWS SAM リソースを AWS CloudFormation リソース AWS SAM に変換します。詳細については、「生成された 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

ステートマシンエイリアスの名前です。Step Functions ステートマシンエイリアスの使用に関する詳細については、「AWS Step Functions デベロッパーガイド」の「Versions and Aliases を使用して継続的なデプロイを管理する」を参照してください。

DeploymentPreference を使用して、エイリアスのデプロイ設定を実行します。を指定しない場合DeploymentPreference、 AWS SAM は新しいステートマシンバージョンに一度に移行するようにトラフィックを設定します。

AWS SAM は、Retainデフォルトでバージョンの DeletionPolicyUpdateReplacePolicyを に設定します。以前のバージョンは自動的に削除されません。

タイプ: 文字列

必須: いいえ

AWS CloudFormation 互換性: このプロパティは、 AWS::StepFunctions::StateMachineAliasリソースの Nameプロパティに直接渡されます。

Definition

ステートマシン定義は オブジェクトで、オブジェクトの形式は JSON や YAML などの AWS SAM テンプレートファイルの形式と一致します。ステートマシンの定義は、Amazon States Language に準拠しています。

インラインステートマシンの定義例については、「」を参照してください。

Definition または DefinitionUri を提供する必要があります。

タイプ: マップ

必須: 条件に応じて異なります

AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のプロパティはありません。

DefinitionSubstitutions

ステートマシン定義内のプレースホルダー変数のマッピングを指定する string-to-string マップ。これは、実行時に取得した値 (組み込み関数からの値など) をステートマシン定義に挿入できるようにします。

タイプ: マップ

必須: いいえ

AWS CloudFormation 互換性: このプロパティは、 AWS::StepFunctions::StateMachineリソースの DefinitionSubstitutionsプロパティに似ています。組み込み関数がインラインステートマシン定義で指定されている場合、 はこのプロパティにエントリ AWS SAM を追加してステートマシン定義に挿入します。

DefinitionUri

Amazon States Language で記述されたステートマシン定義の Amazon Simple Storage Service (Amazon S3) URI またはローカルファイルパスです。

ローカルファイルパスを指定する場合は、定義が適切に変換されるようにするために、テンプレートが sam deploy または sam package コマンドを含むワークフローを実行する必要があります。これを行うには、バージョン 0.52.0 以降の AWS SAM CLI を使用する必要があります。

Definition または DefinitionUri を提供する必要があります。

タイプ: 文字列 | S3Location

必須: 条件に応じて異なります

AWS CloudFormation 互換性: このプロパティは、 AWS::StepFunctions::StateMachineリソースの DefinitionS3Locationプロパティに直接渡されます。

DeploymentPreference

段階的なステートマシンデプロイを有効化して設定する設定です。Step Functions の段階的なデプロイに関する詳細については、「AWS Step Functions デベロッパーガイド」の「Versions and Aliases を使用して継続的なデプロイを管理する」を参照してください。

このプロパティを設定する前に、AutoPublishAlias を指定してください。DeploymentPreference 設定は、AutoPublishAlias で指定されたエイリアスに適用されます。

を指定するとDeploymentPreference、 はStateMachineVersionArnサブプロパティ値を自動的に AWS SAM 生成します。

タイプ: DeploymentPreference

必須: いいえ

AWS CloudFormation 互換性: StateMachineVersionArnプロパティ値 AWS SAM を生成して にアタッチDeploymentPreferenceし、 AWS::StepFunctions::StateMachineAliasリソースの DeploymentPreferenceプロパティDeploymentPreferenceに渡します。

Events

このステートマシンをトリガーするイベントを指定します。イベントは、1 つのタイプと、そのタイプに依存する一連のプロパティで構成されます。

タイプ: 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

AWS::Serverless::StateMachine が生成したリソースに Tags プロパティからのタグを渡すかどうかを指定します。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 リソースの Tags プロパティを参照してください。

タイプ: マップ

必須: いいえ

AWS CloudFormation 互換性: このプロパティは、 AWS::StepFunctions::StateMachine resource. AWS SAM automatically Tagsがこのリソースと、そのリソース用に生成されるデフォルトのロールにstateMachine:createdBy:SAMタグを追加します。

Tracing

ステートマシンで AWS X-Ray が有効になっているかどうかを選択します。X-Ray の Step Functions との使用に関する詳細については、AWS Step Functions デベロッパーガイドの「AWS X-Ray and Step Functions」を参照してください。

タイプ: TracingConfiguration

必須: いいえ

AWS CloudFormation 互換性: このプロパティは、 AWS::StepFunctions::StateMachineリソースの TracingConfigurationプロパティに直接渡されます。

Type

ステートマシンのタイプです。

有効な値: STANDARD または EXPRESS

タイプ:文字列

必須: いいえ

デフォルト: STANDARD

AWS CloudFormation 互換性: このプロパティは、 AWS::StepFunctions::StateMachineリソースの StateMachineTypeプロパティに直接渡されます。

戻り値

参照番号

このリソースの論理 ID を Ref 組み込み関数に提供すると、Ref は基盤となる AWS::StepFunctions::StateMachine リソースの Amazon リソースネーム (ARN) を返します。

Ref 関数の使用方法の詳細については、AWS CloudFormation ユーザーガイドの「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。利用可能な属性とサンプル戻り値は以下のとおりです。

Fn::GetAtt の使用の詳細については、AWS CloudFormation ユーザーガイドの「Fn::GetAtt」を参照してください。

Name

ステートマシンの名前 (HelloWorld-StateMachine など) を返します。

ステートマシン定義ファイル

以下は、Lambda 関数がステートマシンを呼び出すことを許可するインラインステートマシン定義の例です。この例では、 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