AWS Lambda 扩展程序

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

版本:1.1.1

执行部署在 AWS Lambda 上的函数。使用此扩展程序列出您的 AWS 账号中可用的函数,然后调用特定函数。

前提条件

在采用 ExtensionCallout 政策通过 API 代理使用扩展程序之前,您必须:

AWS Lambda 简介

AWS Lambda 提供了计算环境,您可以在其中使用一种支持的语言执行函数。

Action

invoke

在 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 作为 Lambda 函数的输入的 JSON。 字符串 无。 没有。

响应

包含特定版本详细信息的函数数组。下面给出了一个示例:

{
  "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 控制台中输入时,这是一个包含 Amazon 访问密钥 ID 和访问密钥的 JSON 文件,格式如下:

{
"accessKeyId" : "access-key-ID",
"secretAccessKey" : "secret-access-key"
}

通过 Management API 发送时,它是从该密钥 JSON 文件生成的 base64 编码值。
无。 有。