1. ホーム
  2. node.js

AWS SDKのJavascriptでAsyncとAwaitを利用する方法

2023-09-21 20:17:23

質問

AWS SDKでKMS libaryを使って作業しています。コールバックの代わりにasyncとawaitを使いたいのですが、どうすればいいですか?

import AWS, { KMS } from "aws-sdk";

this.kms = new AWS.KMS();

const key = await this.kms.generateDataKey();

しかし、これは非同期関数でラップされると動作しません。

ここでasyncとawaitを使うにはどうしたらいいでしょうか?

どのように解決するのですか?

aws-sdkのバージョン2.xを使用している場合、aws-sdkのバージョン2.xに対応するように aws.Request をプロミスに変換することができます。 .promise() という関数に変換する。 あなたの場合は

  try {
    let key = await kms.generateDataKey().promise();
  } catch (e) {
    console.log(e);
  }

その keyKMS.Types.GenerateDataKeyResponse - であり、コールバックの2番目のパラメータである(コールバックスタイル)。

eAWSError - コールバック func の最初のパラメータ

に注意してください。 await の表現は非同期関数内でのみ許可されます。