AWS SDK for JavaScript v3の実行で”getaddrinfo ENOTFOUND xxx.region.amazonaws.com”というエラーが発生する際の確認ポイント

2022.07.14

こんにちは、CX事業本部 IoT事業部の若槻です。

今回は、AWS SDK for JavaScript v3の実行でgetaddrinfo ENOTFOUND xxx.region.amazonaws.comというエラーが発生する際の確認ポイントについてです。

事象

次のようにAWS SDK for JavaScript v3を使用したコードがあります。一見すると問題なく実行できそうですね。

handler.ts

import { SFNClient, ListStateMachinesCommand } from '@aws-sdk/client-sfn';

const client = new SFNClient({ region: 'ap-norhteast-1' });

const handler = async (): Promise<void> => {
  await client.send(new ListStateMachinesCommand({}));
};

handler();

しかし上記を実行すると、次のようなエラーが発生しました。

$ npx ts-node src/executor.ts
Error: getaddrinfo ENOTFOUND states.ap-norhteast-1.amazonaws.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)

原因、解決

SDK Clientの初期化で指定したAWSリージョン名のtypoでした。存在しないリージョン名が指定されてしまっていたので、正しい名前に修正します。

  • 誤:ap-norhteast-1
  • 正:ap-northeast-1
- const client = new SFNClient({ region: 'ap-norhteast-1' });
+ const client = new SFNClient({ region: 'ap-northeast-1' });

するとコードが問題なく実行できるようになりました。

エラーは「states.ap-norhteast-1.amazonaws.comという(存在しない)アドレスがgetaddrinfoをしても見つからない」と言っていたんですね。

おわりに

AWS SDK for JavaScript v3の実行でgetaddrinfo ENOTFOUND xxx.region.amazonaws.comというエラーが発生する際の確認ポイントについてでした。

見慣れないエラーでしたが、エラーメッセージをよく読めば確認すべきポイントが書いてあるので焦らずに対処しましょう。

以上