$util 中的实用程序助手 - Amazon AppSync
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

$util 中的实用程序助手

$util变量包含可帮助您处理数据的通用实用方法。除非另行指定,否则所有实用程序均使用 UTF-8 字符集。

JSON 解析实用工具

$util.parseJson(String) : Object

获取“字符串化的”JSON 并返回结果的对象表示形式。

$util.toJson(Object) : String

获取对象并返回该对象“字符串化的”JSON 表示形式。

编码工具

$util.urlEncode(String) : String

将输入字符串作为 application/x-www-form-urlencoded 编码字符串返回。

$util.urlDecode(String) : String

application/x-www-form-urlencoded 编码的字符串解码回未编码的形式。

$util.base64Encode( byte[] ) : String

将输入编码为 base64 编码字符串。

$util.base64Decode(String) : byte[]

对 base64 编码字符串中的数据进行解码。

ID 生成工具

$util.autoId() : String

返回 128 位随机生成的 UUID。

$util.autoUlid() : String

返回 128 位随机生成的 ULID(按词典顺序排序的通用唯一标识符)。

$util.autoKsuid() : String

返回一个 128 位随机生成的 KSUID(K-Sortable 唯一标识符)base62,编码为长度为 27 的字符串。

错误工具

$util.error(String)

引发自定义错误。在请求或响应映射模板中使用它来检测请求或调用结果的错误。

$util.error(String, String)

引发自定义错误。在请求或响应映射模板中使用它来检测请求或调用结果的错误。您也可以指定errorType

$util.error(String, String, Object)

引发自定义错误。在请求或响应映射模板中使用它来检测请求或调用结果的错误。您也可以指定errorType和字data段。将在 GraphQL 响应中 data 内部对应的 error 块中添加 errors 值。

注意

data将根据查询选择集进行筛选。

$util.error(String, String, Object, Object)

引发自定义错误。如果模板检测到请求或调用结果的错误,可用于请求或响应映射模板中。此外,errorType可以指定字data段、errorInfo字段和字段。将在 GraphQL 响应中 data 内部对应的 error 块中添加 errors 值。

注意

data将根据查询选择集进行筛选。将在 GraphQL 响应中 errorInfo 内部对应的 error 块中添加 errors 值。

errorInfo不会根据查询选择集进行筛选。

$util.appendError(String)

追加自定义错误。如果模板检测到请求或调用结果的错误,可用于请求或响应映射模板中。与 $util.error(String) 不同,不会中断模板评估,所以数据可以返回调用者。

$util.appendError(String, String)

追加自定义错误。如果模板检测到请求或调用结果的错误,可用于请求或响应映射模板中。此外,还可指定 errorType。与 $util.error(String, String) 不同,不会中断模板评估,所以数据可以返回调用者。

$util.appendError(String, String, Object)

追加自定义错误。如果模板检测到请求或调用结果的错误,可用于请求或响应映射模板中。此外,还可指定 errorTypedata 字段。与 $util.error(String, String, Object) 不同,不会中断模板评估,所以数据可以返回调用者。将在 GraphQL 响应中 data 内部对应的 error 块中添加 errors 值。

注意

data将根据查询选择集进行筛选。

$util.appendError(String, String, Object, Object)

追加自定义错误。如果模板检测到请求或调用结果的错误,可用于请求或响应映射模板中。此外,errorType可以指定字data段、errorInfo字段和字段。与 $util.error(String, String, Object, Object) 不同,不会中断模板评估,所以数据可以返回调用者。将在 GraphQL 响应中 data 内部对应的 error 块中添加 errors 值。

注意

data将根据查询选择集进行筛选。将在 GraphQL 响应中 errorInfo 内部对应的 error 块中添加 errors 值。

errorInfo不会根据查询选择集进行筛选。

条件验证工具

$util.validate(Boolean, String) : void

如果条件为 false,则 CustomTemplateException 使用指定消息抛出。

$util.validate(Boolean, String, String) : void

如果条件为 false,则 CustomTemplateException 使用指定的消息和错误类型抛出。

$util.validate(Boolean, String, String, Object) : void

如果条件为 false,则 CustomTemplateException 使用指定的消息和错误类型以及要在响应中返回的数据抛出。

Null 行为工具

$util.isNull(Object) : Boolean

如果提供的对象为 null 则返回 true。

$util.isNullOrEmpty(String) : Boolean

如果提供的数据为 null 或空字符串,则返回 true。否则返回 false。

$util.isNullOrBlank(String) : Boolean

如果提供的数据为 null 或空白字符串,则返回 true。否则返回 false。

$util.defaultIfNull(Object, Object) : Object

如果首个对象非 null,则返回它。否则返回第二个对象,作为“默认对象”。

$util.defaultIfNullOrEmpty(String, String) : String

如果首个字符串非 null 也非空,则返回它。否则返回第二个字符串,作为“默认字符串”。

$util.defaultIfNullOrBlank(String, String) : String

如果首个字符串非 null 也非空白,则返回它。否则返回第二个字符串,作为“默认字符串”。

模式匹配工具

$util.typeOf(Object) : String

返回字符串,描述对象的类型。支持的类型标识为:"Null"、"Number"、"String"、"Map"、"List"、"Boolean"。如果无法识别类型,则返回 "Object" 类型。

$util.matches(String, String) : Boolean

如果在第一个参数中指定的模式与第二个参数中提供的数据匹配,则返回 true。模式必须为正则表达式,例如 $util.matches("a*b", "aaaaab")。此功能以模式为基础,您可参考其他文档,进一步了解此内容。

$util.authType() : String

返回一个描述请求使用的多身份验证类型的字符串,返回 “IAM 授权”、“用户池授权”、“Open ID Connect 授权” 或 “API 密钥授权”。

对象验证工具

$util.isString(Object) : Boolean

如果对象是一个字符串,则返回 true。

$util.isNumber(Object) : Boolean

如果对象是一个数字,则返回 true。

$util.isBoolean(Object) : Boolean

如果对象是布尔值,则返回 true。

$util.isList(Object) : Boolean

如果对象是一个列表,则返回 true。

$util.isMap(Object) : Boolean

如果对象是地图,则返回 true。

CloudWatch 记录工具

$util.log.info(Object) : Void

在 APIALL 上使用日志级别启用请求级和字段级日志 CloudWatch 记录时,将所提供对象的字符串表示形式记录到请求的日志流中。

$util.log.info(String, Object...) : Void

在 APIALL 上使用日志级别启用请求级和字段级日志 CloudWatch 记录时,将所提供对象的字符串表示形式记录到请求的日志流中。此实用程序会将第一个输入格式 String 中由 “{}” 表示的所有变量按顺序替换为所提供对象的字符串表示形式。

$util.log.error(Object) : Void

在 APIALL 上使用日志级别ERROR或日志级别启用字段级 CloudWatch 日志记录时,将所提供对象的字符串表示形式记录到请求的日志流中。

$util.log.error(String, Object...) : Void

在 APIALL 上使用日志级别ERROR或日志级别启用字段级 CloudWatch 日志记录时,将所提供对象的字符串表示形式记录到请求的日志流中。此实用程序会将第一个输入格式 String 中由 “{}” 表示的所有变量按顺序替换为所提供对象的字符串表示形式。

返回值行为工具

$util.qr()$util.quiet()

在抑制返回值的同时运行 VTL 语句。这对于在不使用临时占位符的情况下运行方法(例如向地图添加项目)很有用。例如:

#set ($myMap = {}) #set($discard = $myMap.put("id", "first value"))

变为:

#set ($myMap = {}) $util.qr($myMap.put("id", "first value"))
$util.escapeJavaScript(String) : String

将输入字符串作为 JavaScript 转义字符串返回。

解析程序授权

$util.unauthorized()

针对被解析的字段引发 Unauthorized。在请求或响应映射模板中使用它来确定是否允许调用者解析该字段。