0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS-SDK lambda invokeAsyncをinovokeに変更しろくださいの通知をやっと対応したので備忘録てきな

Posted at

とりあえず変更

変更前

lambda_client.invoke_async(function_name: function_name, invoke_args: param)

変更後

response = lambda_client.invoke(
    FunctionName=function_name,
    Payload=param,
    InvocationType='Event'
)

なんで非推奨なったのか

inovkeAsyncとは

ambda関数を非同期で呼び出すための古いAPI
現在は非推奨になっている

なぜ非推奨に
  1. コールバックパターンを使用しているため、非同期呼び出しの完了状態を取得する方法が限られている。
  2. invokeAsyncメソッドは、リトライやエラー処理を行うための機能が限定的であり、失敗の発生を検知することができないため、実行中のエラーに対処がむずかしいから

みたいです。

invokenは

invokeAsyncメソッドの代わりにより高度なエラー処理とリトライ機能を提供する新しいAPIであるinvokeメソッド
同期および非同期呼び出しの両方をサポートしているため、invokeAsyncメソッドの代替として使用することができるみたいです。

なので
invokeAsyncメソッドは非推奨になり、代わりにinvokeメソッドを使用することが推奨されているっぽい

コードのinvocation_type
Eventを指定することで非同期実行= Asyncのかわり
RequestResponseを設定することで同期実行ができるみたいです。

invokenの機能

リトライ機能

Lambda関数が呼び出しに失敗した場合、AWS SDKのinvokeメソッドは自動的にリトライを試みます。
リトライの回数と間隔は、AWS SDKのデフォルト設定に従いますが、カスタマイズすることもできる

エラーハンドリング機能

AWS SDKのinvokeメソッドは、Lambda関数がエラーを返した場合に、エラー情報を取得できるようになっている
これにより、呼び出し元のアプリケーションで適切なエラーハンドリングを行うことができる

タイムアウト設定機能

Lambda関数が実行を完了する前にinvokeメソッドがタイムアウトした場合、AWS SDKは自動的にリトライを試みます。
この場合、SDKのデフォルト設定に従って、最大3回までのリトライする

まとめ

ただしデフォルトでリトライやエラーハンドリングするみたいな設定もあるので、追加でLambda関数へのリクエストが増えそうなので
そこんとこ注意っぽいです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?