翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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:
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 は、
Retain
デフォルトでバージョンのDeletionPolicy
とUpdateReplacePolicy
を に設定します。以前のバージョンは自動的に削除されません。型: 文字列
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::StepFunctions::StateMachineAlias
リソースのName
プロパティに直接渡されます。 -
UseAliasAsEventTarget
-
AutoPublishAlias
プロパティを使用して作成されたエイリアスを、Eventsとして定義されたイベントソースのターゲットに渡すかどうかを指定します。エイリアスをイベントのターゲットとして使用するには、
True
を指定します。タイプ: ブール
必須: いいえ
デフォルト:
False
AWS 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
を指定して、生成されたリソースにタグを伝播します。タイプ: ブール
必須: いいえ
デフォルト:
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
プロパティに直接渡されます。 -
ステートマシンと対応する実行ロールに追加されるタグを指定する文字列対文字列マップです。タグの有効なキーと値についての情報は、AWS::StepFunctions::StateMachine リソースの Tags プロパティを参照してください。
タイプ: マップ
必須: いいえ
AWS CloudFormation 互換性: このプロパティは、
AWS::StepFunctions::StateMachine
resource の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
タイプ:文字列
必須: いいえ
デフォルト:
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 で宣言するには、 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