<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
<ph type="x-smartling-placeholder">
版本: 1.0.0
执行 AWS Lambda 上部署的函数。使用此扩展程序列出您的 AWS 账号中可用的函数,然后调用特定函数。
前提条件
在通过 API 代理通过 ExtensionCallout 政策使用扩展程序之前,您必须:
获取您的 Amazon 访问密钥 ID 和私有访问密钥。
您需要这些信息以及部署函数的区域的名称来配置此扩展程序。
部署您的 Lambda 函数。要使扩展程序能够访问 Lambda 函数,它必须是:
- 已部署在公共 VPC 中
- 已部署在具有公共 NAT 网关的专用 VPC 中
如需了解详情,请参阅配置 Lambda 函数以访问 Amazon VPC 中的资源。
AWS Lambda 简介
AWS Lambda 提供了计算环境,您可以在其中使用一种受支持的语言执行函数。
操作
<ph type="x-smartling-placeholder">
调用
在 AWS Lambda 上调用函数。
如需详细了解参数,请参阅 AWS Lambda 调用文档。
语法
<Action>invoke</Action>
<Input><![CDATA[
{
"functionName" : "function-on-lambda",
"invocationType" : "RequestResponse | Event | DryRun",
"logType" : "None | Tail",
"qualifier" : "Version-or-alias",
"payload" : "Escaped-JSON-string"
}
]]>
</Input>
<Output>flow-variable</Output>
示例
<Action>invoke</Action>
<Input><![CDATA[
{
"functionName" : "helloWorld",
"invocationType" : "RequestResponse",
"logType" : "None",
"qualifier" : "$LATEST",
"payload" : "{ \"key\": \"val\" }"
}
]]>
</Input>
<Output>function.response.value</Output>
请求参数
如需详细了解参数,请参阅 AWS Lambda 调用文档。
参数 | 说明 | 类型 | 默认 | 必填 |
---|---|---|---|---|
functionName | 要调用的函数的名称。 | String。 | 无。 | 是。 |
invocationType | 指定是同步调用函数、异步调用函数,还是验证参数值。 | String。 | 无。 | 数量 |
logType | (可选)指定是否返回最后 4 KB 的日志数据。 | 字符串 | 无。 | 数量 |
限定符 | 已发布的 Lambda 函数的别名版本。 | 字符串 | 无。 | 数量 |
payload | 将 JSON 作为 Lambda 函数的输入。 | 字符串 | 无。 | 数量 |
响应
一个函数数组,其中包含特定版本详细信息。下面给出了一个示例:
{
"StatusCode" : 200,
"Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}
响应属性
属性 | 说明 | 类型 | 默认 |
---|---|---|---|
StatusCode | HTTP 状态代码。 | 整数 | 无。 |
载荷 | JSON,表示函数返回的对象。仅当调用类型为 RequestResponse 时才存在。对于函数错误,此文件包含错误说明消息。 | 字符串 | 无。 |
listFunctions
列出可用的 AWS Lambda 函数。
如需详细了解参数,请参阅 AWS Lambda ListFunctions 文档。
语法
<Action>listFunctions</Action>
<Input><![CDATA[
{
"masterRegion" : "ALL | [a-z]{2}(-gov)?-[a-z]+-\d{1}",
"functionVersion" : "ALL",
"maxItems" : 1 - 10000
}
]]>
</Input>
<Output>flow-variable</Output>
示例
<Action>listFunctions</Action>
<Input><![CDATA[
{
"masterRegion" : "ALL",
"functionVersion" : "ALL",
"maxItems" : 50
}
]]>
</Input>
<Output>function.list</Output>
请求参数
如需详细了解参数,请参阅 AWS Lambda ListFunctions 文档。
参数 | 说明 | 类型 | 默认 | 必填 |
---|---|---|---|---|
masterRegion | 应列出其函数的区域(例如 us-east-2 );ALL 可包含来自任何区域的函数。如果指定,您还必须指定 functionVersion 。 |
字符串 | 无。 | 数量 |
functionVersion | 指定 ALL 可列出所有已发布的版本。如果未指定,则仅返回最新的未发布版本 ARN。 |
字符串 | 无。 | 数量 |
maxItems | 响应中要返回的函数数量上限。必须大于 0。可返回的绝对最大值为 50。 | 整数 | 无。 | 数量 |
响应
表示包含特定版本详细信息的函数数组的 JSON。
[
{
"FunctionName": "helloWorld",
"FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
"Runtime": "nodejs",
"Role": "arn:aws:iam::012345:role/service-role/fakeRole",
"Handler": "index.handler",
"Description": "A Hello World lambda function.",
"Version": "$LATEST"
},
{
"FunctionName": "helloWorld",
"FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
"Runtime": "nodejs",
"Role": "arn:aws:iam::012345:role/service-role/fakeRole",
"Handler": "index.handler",
"Description": "A Hello World lambda function.",
"Version": "1"
}
]
响应属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
说明 | 函数的说明。 | String。 | 无。 |
Handler | Lambda 为开始执行该函数而调用的函数。 | String。 | 无。 |
FunctionArn | 函数的 Amazon 资源名称。 | String。 | 无。 |
FunctionName | 函数的名称。 | String。 | 无。 |
角色 | 函数的执行角色。 | String。 | 无。 |
运行时 | 函数的运行时环境。 | String。 | 无。 |
版本 | 函数的版本。 | String。 | 无。 |
配置参考
在配置和部署此扩展程序以供在 API 代理中使用时,请使用以下代码。如需了解使用 Apigee 控制台配置扩展程序的步骤,请参阅添加和配置扩展程序。
常见的扩展属性
每个扩展程序都有以下属性。
属性 | 说明 | 默认 | 必需 |
---|---|---|---|
name |
您为扩展程序配置此名称。 | 无 | 是 |
packageName |
Apigee Edge 提供的扩展包的名称。 | 无 | 是 |
version |
配置扩展程序所用的扩展程序软件包的版本号。 | 无 | 是 |
configuration |
特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性 | 无 | 是 |
此扩展程序软件包的属性
为此扩展程序的以下配置属性指定值。
属性 | 说明 | 默认 | 必填 |
---|---|---|---|
AWS Lambda 区域 | 部署函数的区域的名称。例如:us-east-1 。 |
无。 | 是。 |
凭据 | 在 Apigee Edge 控制台中输入时,这是一个 JSON 文件,其中包含您的 Amazon 访问密钥 ID 和访问密钥,格式如下:{ "accessKeyId" : "access-key-ID", "secretAccessKey" : "secret-access-key" } 通过 Management API 发送时,它是从该密钥 JSON 文件生成的 base64 编码值。 |
无。 | 是。 |