AWS Lambda 擴充功能

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

版本:1.1.1

執行部署於 AWS Lambda 的函式。使用這項擴充功能列出 AWS 帳戶可用的函式,然後叫用特定函式。

必要條件

透過 Extension callout 政策透過 API Proxy 使用擴充功能前,您必須:

關於 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 要叫用的函式名稱。 字串。 無。 可以。
invocationType 指定要以同步、非同步或非同步方式叫用函式,還是驗證參數值。 字串。 無。 不會。
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"
  }
]

回應屬性

屬性 說明 類型 預設
說明 函式說明。 字串。 無。
Handler Lambda 呼叫的函式以開始執行函式。 字串。 無。
FunctionArn 函式的 Amazon Resource Name。 字串。 無。
FunctionName 函式的名稱。 字串。 無。
角色 函式的執行角色。 字串。 無。
執行階段 函式的執行階段環境。 字串。 無。
版本 函式的版本。 字串。 無。

設定參考資料

如果您要設定及部署這個擴充功能,以便用於 API Proxy,請按照下列指示操作。如需使用 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 編碼值。
無。 可以。