InvokeWithResponseStream
Lambda 関数を設定して、レスポンスペイロードをクライアントにストリーミングで返します。詳細については、「ストリームレスポンスに Lambda 関数を設定する」を参照してください。
このオペレーションには lambda:InvokeFunction アクションに対するアクセス許可が必要です。クロスアカウントの呼び出しに対する許可を設定する方法の詳細については、他のアカウントに関数のアクセス権の付与を参照してください。
リクエストの構文
POST /2021-11-15/functions/FunctionName
/response-streaming-invocations?Qualifier=Qualifier
HTTP/1.1
X-Amz-Invocation-Type: InvocationType
X-Amz-Log-Type: LogType
X-Amz-Client-Context: ClientContext
Payload
URI リクエストパラメータ
リクエストでは、次の URI パラメータを使用します。
- ClientContext
-
コンテキストオブジェクトで関数に渡される、呼び出し側クライアントに関する最大 3,583 バイトの base64 でエンコードされたデータです。
- FunctionName
-
Lambda 関数の名前
名前の形式
-
関数名 –
my-function
。 -
関数 ARN –
arn:aws:lambda:us-west-2:123456789012:function:my-function
。 -
部分的な ARN –
123456789012:function:my-function
。
完全な ARN にのみ適用される長さの制限 関数名のみを指定する場合、64 文字の長さに制限されます。
長さの制限: 最小長は 1 です。最大長は 170 です。
パターン:
(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?
必須: はい
-
- InvocationType
-
以下のいずれかのオプションを使用します。
-
RequestResponse
(デフォルト) – 関数を同期的に呼び出します。関数がレスポンスを返すかタイムアウトするまで、接続を開いたままにします。API オペレーションレスポンスには、関数レスポンスと追加データが含まれます。 -
DryRun
– パラメータ値を検証し、IAM ユーザーまたはロールが、関数を呼び出す許可を持っていることを確認します。
有効な値:
RequestResponse | DryRun
-
- LogType
-
Tail
に設定し、実行ログをレスポンスに含めます。同期的に呼び出された関数にのみ適用されます。有効な値:
None | Tail
- Qualifier
-
エイリアス名。
長さの制限:最小長は 1 です。最大長は 128 です。
Pattern:
(|[a-zA-Z0-9$_-]+)
リクエストボディ
リクエストは以下のバイナリデータを受け入れます。
- Payload
-
入力として Lambda 関数に提供される JSON。
JSON を直接入力できます。例えば、
--payload '{ "key": "value" }'
です。ファイルパスを指定することもできます。例えば、--payload file://payload.json
です。
レスポンスの構文
HTTP/1.1 StatusCode
X-Amz-Executed-Version: ExecutedVersion
Content-Type: ResponseStreamContentType
Content-type: application/json
{
"InvokeComplete": {
"ErrorCode": "string",
"ErrorDetails": "string",
"LogResult": "string"
},
"PayloadChunk": {
"Payload": blob
}
}
レスポンス要素
アクションが成功すると、以下の HTTP レスポンスが返されます。
- StatusCode
-
リクエストが成功した場合、HTTP ステータスコードは 200 の範囲内にあります。
RequestResponse
呼び出しタイプの場合、ステータスコードは 200 です。DryRun
呼び出しタイプの場合、ステータスコードは 204 です。
レスポンスでは、以下の HTTP ヘッダーが返されます。
- ExecutedVersion
-
実行された関数のバージョン。エイリアスを使用して関数を呼び出すと、エイリアスが解決したバージョンが示されます。
長さの制限: 最小長は 1 です。最大長は 1,024 です。
パターン:
(\$LATEST|[0-9]+)
- ResponseStreamContentType
-
ストリームが返すデータのタイプ。
サービスから以下のデータが JSON 形式で返されます。
- InvokeComplete
-
ストリームが終了し、すべてのペイロードチャンクが返されたときに返されるオブジェクト。
型: InvokeWithResponseStreamCompleteEvent オブジェクト
- PayloadChunk
-
ストリーミングされたレスポンスペイロードのチャンク。
型: InvokeResponseStreamUpdate オブジェクト
エラー
すべてのアクションに共通のエラーについては、「共通エラー」を参照してください。
- EC2AccessDeniedException
-
VPC 設定を構成するには、追加のアクセス許可が必要です。
HTTP ステータスコード: 502
- EC2ThrottledException
-
Amazon EC2 が、Lambda 関数用に提供された実行ロールを使用した関数の初期化中に AWS Lambda をスロットルしました。
HTTP ステータスコード: 502
- EC2UnexpectedException
-
AWS Lambda が、Lambda 関数のセットアップ中に想定外の Amazon EC2 クライアント例外を受け取りました。
HTTP ステータスコード: 502
- EFSIOException
-
接続されているファイルシステムの読み込みまたは書き込み中にエラーが発生しました。
HTTP ステータスコード: 410
- EFSMountConnectivityException
-
Lambda 関数が、設定されたファイルシステムに対するネットワーク接続を確立できませんでした。
HTTP ステータスコード: 408
- EFSMountFailureException
-
許可または設定の問題が原因で、Lambda 関数は設定されたファイルシステムをマウントできませんでした。
HTTP ステータスコード: 403
- EFSMountTimeoutException
-
Lambda 関数は、設定されたファイルシステムに対するネットワーク接続を確立しましたが、マウント操作がタイムアウトしました。
HTTP ステータスコード: 408
- ENILimitReachedException
-
ネットワークインターフェイスの制限に達したため、AWS Lambda は Lambda 関数設定の一部として指定された VPC で Elastic Network Interface を作成できませんでした。詳細については、「Lambda クォータ」を参照してください。
HTTP ステータスコード: 502
- InvalidParameterValueException
-
リクエストに含まれているパラメータの 1 つが無効です。
HTTP ステータスコード:400
- InvalidRequestContentException
-
リクエストボディを JSON として解析できませんでした。
HTTP ステータスコード:400
- InvalidRuntimeException
-
指定されたランタイムまたはランタイムバージョンは、サポートされていません。
HTTP ステータスコード: 502
- InvalidSecurityGroupIDException
-
Lambda 関数の VPC 設定で指定されているセキュリティグループ ID が無効です。
HTTP ステータスコード: 502
- InvalidSubnetIDException
-
Lambda 関数の VPC 設定で指定されているサブネット ID が無効です。
HTTP ステータスコード: 502
- InvalidZipFileException
-
AWS Lambda がデプロイパッケージを解凍できませんでした。
HTTP ステータスコード: 502
- KMSAccessDeniedException
-
AWS KMS アクセスが拒否されたため、Lambda は環境変数を復号化できませんでした。Lambda 関数の KMS アクセス許可をチェックしてください。
HTTP ステータスコード: 502
- KMSDisabledException
-
使用した AWS KMS keyが無効化されているため、Lambda は環境変数を復号化できませんでした。Lambda 関数の KMS キー設定をチェックしてください。
HTTP ステータスコード: 502
- KMSInvalidStateException
-
使用した AWS KMS keyの状態が複合化に有効なものではないため、Lambda は環境変数を復号化できませんでした。関数の KMS キー設定をチェックしてください。
HTTP ステータスコード: 502
- KMSNotFoundException
-
AWS KMS keyが見つからなかったため、Lambda は環境変数を復号化できませんでした。関数の KMS キー設定をチェックしてください。
HTTP ステータスコード: 502
- RecursiveInvocationException
-
他の AWS リソースと再帰的なループで関数が呼び出されていることを Lambda が検出したため、関数の呼び出しを停止しました。
HTTP ステータスコード:400
- RequestTooLargeException
-
リクエストペイロードが
Invoke
リクエストボディの JSON 入力クォータを超過しました。詳細については、「Lambda クォータ」を参照してください。HTTP ステータスコード: 413
- ResourceConflictException
-
リソースが既に存在しているか、別のオペレーションが進行中です。
HTTP ステータスコード: 409
- ResourceNotFoundException
-
リクエストで指定されたリソースは存在しません。
HTTP ステータスコード: 404
- ResourceNotReadyException
-
関数が非アクティブなため、その VPC 接続を使用できません。VPC 接続が再度確立されるのを待ち、再試行してください。
HTTP ステータスコード: 502
- ServiceException
-
AWS Lambda サービスで内部エラーが発生しました。
HTTP ステータスコード: 500
- SnapStartException
-
afterRestore()
ランタイムフックでエラーが発生しました。詳細については、Amazon CloudWatch Logs をチェックしてください。HTTP ステータスコード:400
- SnapStartNotReadyException
-
Lambda が関数を初期化しています。関数は、関数の状態が
Active
になったときに呼び出すことができます。HTTP ステータスコード: 409
- SnapStartTimeoutException
-
Lambda は、タイムアウト制限内にスナップショットを復元できませんでした。
HTTP ステータスコード: 408
- SubnetIPAddressLimitReachedException
-
1 つ、または複数の設定されたサブネットに利用可能な IP アドレスがないことから、AWS Lambda は Lambda 関数の VPC アクセスを設定できませんでした。
HTTP ステータスコード: 502
- TooManyRequestsException
-
リクエストスループット制限を超えました。詳細については、「Lambda クォータ」を参照してください。
HTTP ステータスコード: 429
- UnsupportedMediaTypeException
-
Invoke
リクエストボディのコンテンツタイプが JSON ではありません。HTTP ステータスコード: 415
以下の資料も参照してください。
言語固有の AWS SDK のいずれかでこの API を使用する方法の詳細については、以下を参照してください。