查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
版本:1.0.0
執行部署於 AWS Lambda 的函式。你可以使用這項擴充功能列出 AWS 帳戶中的可用函式,然後叫用特定函式。
必要條件
透過 Extension 摘要政策使用 API Proxy 擴充功能之前,您必須:
取得您的 Amazon 存取金鑰 ID 和私密存取金鑰。
您需要這些資訊以及部署函式的區域名稱,才能設定這項擴充功能。
部署 Lambda 函式。為了讓擴充功能存取 Lambda 函式,必須滿足以下條件:
- 已在公開虛擬私有雲中部署
- 部署於具有公開 NAT 閘道的私人虛擬私有雲中
關於 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 編碼值。 |
無。 | 是。 |