翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 SAM」を参照してください。
構文
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 は、
RetainデフォルトでバージョンのDeletionPolicyとUpdateReplacePolicyを に設定します。以前のバージョンは自動的に削除されません。型: 文字列
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::StepFunctions::StateMachineAliasリソースのNameプロパティに直接渡されます。 -
UseAliasAsEventTarget -
AutoPublishAliasプロパティを使用して作成されたエイリアスを、Eventsとして定義されたイベントソースのターゲットに渡すかどうかを指定します。エイリアスをイベントのターゲットとして使用するには、
Trueを指定します。タイプ: ブール
必須: いいえ
デフォルト:
FalseAWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のプロパティはありません。
-
Definition -
ステートマシン定義は オブジェクトで、オブジェクトの形式は JSON や YAML などの AWS SAM テンプレートファイルの形式と一致します。ステートマシンの定義は、Amazon States Language に準拠しています。
インラインステートマシンの定義例については、「例」を参照してください。
DefinitionまたはDefinitionUriを提供する必要があります。タイプ: マップ
必須: 条件に応じて異なります
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のものはありません。
-
DefinitionSubstitutions -
ステートマシン定義内のプレースホルダー変数のマッピングを指定する文字列対文字列のマップです。これは、実行時に取得した値 (組み込み関数からの値など) をステートマシン定義に挿入できるようにします。
タイプ: マップ
必須: いいえ
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 compatibility: AWS SAM プロパティ
StateMachineVersionArn値を生成して にアタッチ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) 実行ロールに追加されます。
このプロパティは、単一の値または値のリストを受け入れます。使用できる値は次のとおりです。
-
AWS 管理ポリシーまたはカスタマー管理ポリシーの ARN。
-
次のリストから
の AWS 管理ポリシーの名前。 -
マップとして YAML でフォーマットされたインライン IAM ポリシー。
注記
Roleプロパティを設定する場合、このプロパティは無視されます。タイプ: 文字列 | リスト | マップ
必須: いいえ
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のプロパティはありません。
-
AWS::Serverless::StateMachine が生成したリソースに
Tagsプロパティからのタグを渡すかどうかを指定します。Trueを指定して、生成されたリソースにタグを伝播します。タイプ: ブール
必須: いいえ
デフォルト:
FalseAWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のものはありません。
-
Role -
このステートマシンの実行ロールとして使用する IAM ロールの ARN です。
型: 文字列
必須: 条件に応じて異なります
AWS CloudFormation 互換性: このプロパティは、
AWS::StepFunctions::StateMachineリソースのRoleArnプロパティに直接渡されます。 -
RolePath -
ステートマシンの IAM 実行ロールへのパス。
このプロパティは、ユーザーのためにロールが生成される場合にのみ機能します。
Roleプロパティでロールが指定されている場合は使用しないでください。型: 文字列
必須: 条件に応じて異なります
AWS CloudFormation 互換性: このプロパティは、
AWS::IAM::RoleリソースのPathプロパティに直接渡されます。 -
ステートマシンと対応する実行ロールに追加されるタグを指定する文字列対文字列マップです。タグの有効なキーと値についての情報は、AWS::StepFunctions::StateMachine リソースの Tags プロパティを参照してください。
タイプ: マップ
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::StepFunctions::StateMachineresource のTagsプロパティに似ています。 は、このリソースと、それに対して生成されるデフォルトのロールにstateMachine:createdBy:SAMタグ AWS 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タイプ:文字列
必須: いいえ
デフォルト:
STANDARDAWS 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