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 SAM リソースを CloudFormation リソースに変換します。詳細については、「AWS SAM 向けに生成された CloudFormation リソース」を参照してください。

構文

AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、以下の構文を使用します。

YAML

Type: AWS::Serverless::StateMachine Properties: AutoPublishAlias: String UseAliasAsEventTarget: Boolean 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 はバージョンの DeletionPolicy および UpdateReplacePolicyRetain に設定します。以前のバージョンは自動的に削除されません。

タイプ: 文字列

必須: いいえ

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

UseAliasAsEventTarget

AutoPublishAlias プロパティを使用して作成されたエイリアスを、Eventsとして定義されたイベントソースのターゲットに渡すかどうかを指定します。

エイリアスをイベントのターゲットとして使用するには、True を指定します。

タイプ: ブール

必須: いいえ

[Default] (デフォルト): False

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

Definition

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

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

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

タイプ: マップ

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

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

DefinitionSubstitutions

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

タイプ: マップ

必須: いいえ

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

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

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

DeploymentPreference

段階的なステートマシンデプロイを有効化して設定する設定です。Step Functions の段階的なデプロイに関する詳細については、「AWS Step Functions Developer Guide」の「 Manage continuous deployments with versions and aliases」を参照してください。

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

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

タイプ: DeploymentPreference

必須: いいえ

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

Events

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

タイプ: EventSource

必須: いいえ

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

Logging

どの実行履歴イベントがどこにログされるかを定義します。

タイプ: LoggingConfiguration

必須: いいえ

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

Name

ステートマシンの名前です。

タイプ: 文字列

必須: いいえ

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

PermissionsBoundary

このステートマシンの実行ロールに使用するアクセス許可境界の ARN です。このプロパティは、ユーザーのためにロールが生成される場合にのみ機能します。

タイプ: 文字列

必須: いいえ

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

Policies

このステートマシンの許可ポリシー。ポリシーは、ステートマシンのデフォルト AWS Identity and Access Management (IAM) 実行ロールに付加されます。

このプロパティは、単一の値または値のリストを受け入れます。使用できる値は次のとおりです。

注記

Role プロパティを設定する場合、このプロパティは無視されます。

タイプ: 文字列 | リスト | マップ

必須: いいえ

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

PropagateTags

AWS::Serverless::StateMachine が生成したリソースに Tags プロパティからのタグを渡すかどうかを指定します。True を指定して、生成されたリソースにタグを伝播します。

タイプ: ブール

必須: いいえ

[Default] (デフォルト): False

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

Role

このステートマシンの実行ロールとして使用する IAM ロールの ARN です。

タイプ: 文字列

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

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

RolePath

ステートマシンの IAM 実行ロールへのパス。

このプロパティは、ユーザーのためにロールが生成される場合にのみ機能します。Role プロパティでロールが指定されている場合は使用しないでください。

タイプ: 文字列

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

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

Tags

ステートマシンと対応する実行ロールに追加されるタグを指定する文字列対文字列マップです。タグの有効なキーと値についての情報は、AWS::StepFunctions::StateMachine リソースの Tags プロパティを参照してください。

タイプ: マップ

必須: いいえ

CloudFormation の互換性: このプロパティは、AWS::StepFunctions::StateMachine リソースの Tags プロパティに似ています。AWS SAM は自動的にこのリソースに stateMachine:createdBy:SAM タグを付けて、そのリソースに対して生成されるデフォルトのロールにタグを付けます。

Tracing

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

タイプ: TracingConfiguration

必須: いいえ

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

Type

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

有効な値: STANDARD または EXPRESS

: 文字列

必須: いいえ

[Default] (デフォルト): STANDARD

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 で宣言するには、AWS SAM テンプレートファイルを JSON で記述してください。

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