内部函数 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

内部函数

亚马逊州语言提供了几种内在函数,允许基本操作没有Task状态。内部函数是看起来像编程语言中的函数的结构,可用于帮助有效负载构建器处理进出任务资源的数据。

States.Format

支持基于文字和插值构造字符串,并接受一个或多个参数。第一个参数的值必须是字符串,并且可能包含零个或多个字符序列的实例{}. 调用中的剩余参数必须与发生的情况一样多{}. 解释器返回每个参数的第一个参数字符串{}替换为内部调用中位置对应参数的值。

示例:给定以下输入:

{ "name": "Arnav", "template": "Hello, my name is {}." }

状态。格式可以按如下方式使用:

States.Format('Hello, my name is {}.', $.name)

States.Format($.template, $.name)

两者都会导致输出Hello, my name is Arnav.

States.StringToJson

采用单个参数,转义后的 JSON 字符串的引用路径。

解释器应用 JSON 解析器返回其解析后的 JSON 表单。例如,给定以下输入:

{ "escapedJsonString": "{\"foo\": \"bar\"}" }

你可以用

States.StringToJson($.escapedJsonString)

将返回{ "foo": "bar" }

States.JsonToString

需要一个参数。这个参数必须是一个路径。解释器返回一个字符串,该字符串是表示 Path 标识的数据的 JSON 文本。例如,给定以下输入:

{ "unescapedJson": { "foo": "bar" } }

你可以用

States.JsonToString($.unescapedJson)

将返回{\"foo\": \"bar\"}

States.Array

这种内在函数需要零个或更多的参数。解释器按提供的顺序返回一个包含参数值的 JSON 数组。例如,给定以下输入:

{ "Id": 123456 }

你可以用

"BuildId.$": "States.Array($.Id)"

将返回“BuildId”: [123456]

内部函数中的保留字符

以下字符是为内部函数保留的,如果希望它们出现在 Value 中,必须用反斜杠 ('\') 进行转义:'{}, 和\.

如果角色\需要在不作为转义字符的情况下显示为值的一部分,必须首先用反斜杠对其进行转义。内在调用的保留字符按如下方式进行转义:

  • 文字字符串\'代表'.

  • 文字字符串\{代表{.

  • 文字字符串\}代表}.

  • 文字字符串\\代表\.

在 JSON 中,字符串文字值中包含的反斜杠必须用另一个反斜杠进行转义。JSON 的等效列表是:

  • 转义的字符串\\'代表'.

  • 转义的字符串\\{代表{.

  • 转义的字符串\\}代表}.

  • 转义的字符串\\\\代表\.

注意

如果是一个开放的转义反斜杠\在内部调用字符串中找到,解释器会抛出运行时错误。

支持内部函数的字段

下表显示了哪些字段支持每个状态的内部函数。

支持内部函数的字段
State
Pass 任务 Choice 等待 Succeed Fail Parallel Map
InputPath
参数
结果选择器
ResultPath
OutputPath
变量
<Comparison Operator>路径
超时秒数路径
心跳第二个路径