AWS Lambda 拡張機能

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

<ph type="x-smartling-placeholder">

バージョン: 1.1.1

AWS Lambda にデプロイされた関数を実行します。この拡張機能を使用すると、AWS アカウントで使用可能な関数を一覧表示してから、特定の関数を呼び出すことができます。

前提条件

ExtensionCallout ポリシーを使用して API プロキシから拡張機能を使用する前に、次のことを行う必要があります。

AWS Lambda について

AWS Lambda は、サポートされているいずれかの言語で関数を実行できるコンピューティング環境を提供します。

操作

<ph type="x-smartling-placeholder">

invoke

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 を返すかどうかを指定します。 文字列 なし。 いいえ。
qualifier 公開された Lambda 関数のエイリアスのバージョン。 文字列 なし。 いいえ。
payload Lambda 関数への入力としての JSON。 文字列 なし。 いいえ。

レスポンス

特定のバージョンの詳細を含む関数の配列。次に例を示します。

{
  "StatusCode" : 200,
  "Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}

レスポンスのプロパティ

プロパティ 説明 デフォルト
StatusCode HTTP ステータス コード。 Integer なし。
ペイロード 関数によって返されるオブジェクトを表す 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 です。 Integer なし。 いいえ。

レスポンス

特定のバージョンの詳細を含む関数の配列を表す 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 リソース名。 文字列 なし。
FunctionName 関数名。 文字列 なし。
ロール 関数の実行ロール。 文字列 なし。
ランタイム 関数のランタイム環境。 文字列 なし。
バージョン 関数のバージョン。 文字列 なし。

構成リファレンス

API プロキシで使用するためにこの拡張機能を構成してデプロイする場合は、以下を使用します。Apigee コンソールを使用して拡張機能を構成する手順については、拡張機能の追加と構成をご覧ください。

拡張機能の一般的なプロパティ

すべての拡張機能には次のプロパティがあります。

プロパティ 説明 デフォルト 必須
name この拡張機能に付ける名前。 なし
packageName Apigee Edge から提供された拡張機能パッケージの名前。 なし
version 拡張機能を構成する拡張機能パッケージのバージョン番号。 なし
configuration 追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 なし

この拡張機能パッケージのプロパティ

この拡張機能に固有の次の構成プロパティの値を指定します。

プロパティ 説明 デフォルト 必須
AWS Lambda リージョン 関数がデプロイされるリージョンの名前。例: us-east-1 なし。 はい。
認証情報 Apigee Edge コンソールで入力すると、これは次の形式の Amazon アクセスキー ID とアクセスキーを含む JSON ファイルです。

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

Management API 経由で送信される場合は、そのキーの JSON ファイルから生成された base64 エンコード値です。
なし。 はい。