AWS Lambda 扩展程序

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

版本:2.0.0

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

前提条件

在使用 ExtensionCallout 政策从 API 代理使用扩展程序之前,您必须满足以下条件:

AWS Lambda 简介

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

操作

调用

在 AWS Lambda 上调用函数。

如需详细了解参数,请参阅 AWS Lambda Invoke 文档

语法

<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 Invoke 文档

参数 说明 类型 默认值 必需
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 控制台中输入时,此参数是一个 JSON 文件,其中包含采用以下形式的 Amazon 访问密钥 ID 和访问密钥:

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

通过管理 API 发送时,此参数是从该密钥 JSON 文件生成的 base64 编码值。
无。 是。