AWS CloudFormation
User Guide (API 版本 2010-05-15)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

AWS::StepFunctions::StateMachine

使用 AWS::StepFunctions::StateMachine 资源创建 AWS Step Functions 状态机。

有关创建状态机的信息,请参阅 AWS Step Functions 开发人员指南中的教程:Lambda 状态机AWS Step Functions API 参考中的 CreateStateMachine

语法

JSON

{ "Type": "AWS::StepFunctions::StateMachine", "Properties": { "StateMachineName": String, "DefinitionString": String, "RoleArn": String } }

YAML

Type: "AWS::StepFunctions::StateMachine" Properties: StateMachineName: String DefinitionString: String RoleArn: String

属性

StateMachineName

状态机的名称。如果未指定名称,系统将自动生成一个类似于 MyStateMachine-1234abcdefgh 的名称。有关创建有效名称的更多信息,请参阅 AWS Step Functions API 参考 中的请求参数

Required: No

Type: String

更新要求替换

DefinitionString

状态机的 Amazon 状态语言 定义。有关更多信息,请参阅 AWS Step Functions 开发人员指南中的 Amazon 状态语言

Required: Yes

Type: String

更新要求无需中断

RoleArn

这个状态机使用的 IAM 角色的 Amazon 资源名称 (ARN)。

Required: Yes

Type: String

更新要求无需中断

返回值

Ref

当向 Ref 内部函数提供此资源的逻辑 ID 时,Ref 将返回所创建状态机的 ARN。例如:

{ "Ref": "MyStateMachine" }

返回与以下值类似的值:

arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine

有关使用 Ref 功能的更多信息,请参阅参考

Fn::GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

Name

返回状态机的名称。例如:

{ "Fn::GetAtt": ["MyStateMachine", "Name"] }

返回状态机的名称:

HelloWorld-StateMachine

如果未指定名称,它将与以下内容类似:

MyStateMachine-1234abcdefgh

有关使用 Fn::GetAtt 的更多信息,请参见 Fn::GetAtt

示例

以下示例创建 Step Functions 状态机。

JSON

使用单行属性

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "An example template for a Step Functions state machine.", "Resources" : { "MyStateMachine" : { "Type" : "AWS::StepFunctions::StateMachine", "Properties" : { "StateMachineName" : "HelloWorld-StateMachine", "DefinitionString" : "{\"StartAt\": \"HelloWorld\", \"States\": {\"HelloWorld\": {\"Type\": \"Task\", \"Resource\": \"arn:aws:lambda:us-east-1:111122223333:function:HelloFunction\", \"End\": true}}}", "RoleArn" : "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1" } } } }

使用 Fn::Join 内部函数

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "An example template for a Step Functions state machine.", "Resources": { "MyStateMachine": { "Type": "AWS::StepFunctions::StateMachine", "Properties": { "StateMachineName" : "HelloWorld-StateMachine", "DefinitionString" : { "Fn::Join": [ "\n", [ "{", " \"StartAt\": \"HelloWorld\",", " \"States\" : {", " \"HelloWorld\" : {", " \"Type\" : \"Task\", ", " \"Resource\" : \"arn:aws:lambda:us-east-1:111122223333:function:HelloFunction\",", " \"End\" : true", " }", " }", "}" ] ] }, "RoleArn" : "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1" } } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions state machine. Resources: MyStateMachine: Type: AWS::StepFunctions::StateMachine Properties: StateMachineName: HelloWorld-StateMachine DefinitionString: |- { "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction", "End": true } } } RoleArn: arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1

本页内容: