翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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:StringUseAliasAsEventTarget:BooleanDefinition:MapDefinitionSubstitutions:MapDefinitionUri:String | S3LocationDeploymentPreference:DeploymentPreferenceEvents:EventSourceLogging:LoggingConfigurationName:StringPermissionsBoundary:StringPolicies:String | List | MapPropagateTags:BooleanRolePath:StringRole:StringTags:MapTracing:TracingConfigurationType:String
プロパティ
-
AutoPublishAlias -
ステートマシンエイリアスの名前です。Step Functions ステートマシンエイリアスの使用に関する詳細については、「AWS Step Functions デベロッパーガイド」の「Versions and Aliases を使用して継続的なデプロイを管理する」を参照してください。
DeploymentPreferenceを使用して、エイリアスのデプロイ設定を実行します。DeploymentPreferenceを指定しない場合、AWS SAM がトラフィックを設定して、新しいステートマシンバージョンに一度に移行するようにします。デフォルトで、AWS SAM はバージョンの
DeletionPolicyおよびUpdateReplacePolicyをRetainに設定します。以前のバージョンは自動的に削除されません。タイプ: 文字列
必須: いいえ
CloudFormation との互換性: このプロパティは、
AWS::StepFunctions::StateMachineAliasリソースのNameプロパティに直接渡されます。 -
UseAliasAsEventTarget -
AutoPublishAliasプロパティを使用して作成されたエイリアスを、Eventsとして定義されたイベントソースのターゲットに渡すかどうかを指定します。エイリアスをイベントのターゲットとして使用するには、
Trueを指定します。タイプ: ブール
必須: いいえ
[Default] (デフォルト):
FalseCloudFormation との互換性: このプロパティは 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) 実行ロールに付加されます。
このプロパティは、単一の値または値のリストを受け入れます。使用できる値は次のとおりです。
-
AWS 管理ポリシーまたはカスタマー管理ポリシーの ARN。
-
次のリスト
にある AWS マネージドポリシーの名前。 -
マップとして YAML でフォーマットされたインライン IAM ポリシー。
注記
Roleプロパティを設定する場合、このプロパティは無視されます。タイプ: 文字列 | リスト | マップ
必須: いいえ
CloudFormation との互換性: このプロパティは AWS SAM に固有であり、CloudFormation に同等のものはありません。
-
AWS::Serverless::StateMachine が生成したリソースに
Tagsプロパティからのタグを渡すかどうかを指定します。Trueを指定して、生成されたリソースにタグを伝播します。タイプ: ブール
必須: いいえ
[Default] (デフォルト):
FalseCloudFormation との互換性: このプロパティは AWS SAM に固有であり、CloudFormation に同等のものはありません。
-
Role -
このステートマシンの実行ロールとして使用する IAM ロールの ARN です。
タイプ: 文字列
必須: 条件に応じて異なります
CloudFormation との互換性: このプロパティは、
AWS::StepFunctions::StateMachineリソースのRoleArnプロパティに直接渡されます。 -
RolePath -
ステートマシンの IAM 実行ロールへのパス。
このプロパティは、ユーザーのためにロールが生成される場合にのみ機能します。
Roleプロパティでロールが指定されている場合は使用しないでください。タイプ: 文字列
必須: 条件に応じて異なります
CloudFormation との互換性: このプロパティは、
AWS::IAM::RoleリソースのPathプロパティに直接渡されます。 -
ステートマシンと対応する実行ロールに追加されるタグを指定する文字列対文字列マップです。タグの有効なキーと値についての情報は、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] (デフォルト):
STANDARDCloudFormation との互換性: このプロパティは、
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