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?

AWS CDKでの TypeError: type of argument sources must be a sequence エラーの解決方法

Posted at

はじめに

AWS CDKを使用していると、次のようなエラーに遭遇することがあります:

TypeError: type of argument sources must be a sequence; got jsii._reference_map.InterfaceDynamicProxy instead

エラーの原因と解決策について詳しく説明します。

エラーの原因

このエラーは主に、CDKコンストラクトに渡すパラメータの型が正しくない場合に発生します。具体的には、sources引数に期待される型(シーケンス型、例えばリストや配列)ではなく、単一のオブジェクトが渡されている場合に起こります。

解決策

1. パラメータをリストで囲む

最も一般的な解決策は、sourcesパラメータを角括弧[]で囲み、リストにすることです。

修正前:

my_construct = SomeConstruct(self, "MyConstruct",
    sources=s3.Bucket(self, "MyBucket")
)

修正後:

my_construct = SomeConstruct(self, "MyConstruct",
    sources=[s3.Bucket(self, "MyBucket")]
)

2. CDKのバージョンを確認

使用しているCDKのバージョンが最新であることを確認してください。古いバージョンを使用している場合、型の不一致が発生する可能性があります。

npm list -g aws-cdk

必要に応じて、最新版にアップデートしてください:

npm update -g aws-cdk

3. ドキュメントの確認

該当するCDKコンストラクトのドキュメントを確認し、sourcesパラメータの正しい使用方法を確認することも重要です。AWS CDKの公式ドキュメントや、使用しているコンストラクトの具体的なAPIリファレンスを参照してください。

まとめ

AWS CDKでの TypeError: type of argument sources must be a sequence エラーは、主にパラメータの渡し方の問題です。多くの場合、単一のオブジェクトをリストで囲むことで解決できます。また、CDKのバージョンが最新であることを確認し、必要に応じてドキュメントを参照することで、このような問題を回避できます。

エラーメッセージが難解に見えても、落ち着いて原因を分析し、適切な対処を行うことで、スムーズにAWS CDKの開発を進めることができます。

参考リンク

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?