您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
版本:2.0.0
執行在 AWS Lambda 上部署的函式。使用這個擴充功能,即可列出 AWS 帳戶中可用的函式,然後叫用特定函式。
必要條件
使用 ExtensionCallout 政策從 API proxy 使用擴充功能前,您必須:
取得 Amazon 存取金鑰 ID 和私密存取金鑰。
您需要這些資訊,以及部署函式的區域名稱,才能configure這項擴充功能。
部署 Lambda 函式。如要讓擴充功能存取 Lambda 函式,該擴充功能必須符合下列任一條件:
- 部署在公用 VPC 中
- 在私人 VPC 中部署,並使用公用 NAT 閘道
關於 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 編碼值。 |
無。 | 是。 |