AWS Lambda 擴充功能

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

版本:2.0.0

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

必要條件

使用 ExtensionCallout 政策從 API proxy 使用擴充功能前,您必須:

關於 AWS Lambda

AWS Lambda 提供運算環境,可讓您使用支援的語言執行函式。

動作

叫用

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

回應屬性

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

設定參考資料

如要設定及部署此擴充功能,以便在 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 編碼值。
無。 是。