0
0

More than 1 year has passed since last update.

AWS CDK トラブルシューティング

Posted at

① 

問題①

以前動作していたコードがエラーになるのは通常、AWS Construct ライブラリモジュールのバージョンが一致しない場合の症状です。

AWS Construct ライブラリを構成するすべてのモジュールは、一致しているセットとして提供されます。すべての AWS Construct ライブラリモジュールが同じバージョンであり、最新であることを確認すると、ほとんどのエラーフラグが解消されます。

解決策①

インストールされているすべての AWS Construct ライブラリモジュールのバージョンを確認するには、ターミナルウィンドウで npm outdated コマンドを実行します。(古くなったバージョンのみを表示)

npm outdated

Package                  Current   Wanted   Latest  Location                              Depended by
@aws-cdk/aws-apigateway  1.191.0  1.192.0  1.192.0  node_modules/@aws-cdk/aws-apigateway  MyWidgetService
@aws-cdk/aws-lambda      1.191.0  1.192.0  1.192.0  node_modules/@aws-cdk/aws-lambda      MyWidgetService
@aws-cdk/aws-s3          1.191.0  1.192.0  1.192.0  node_modules/@aws-cdk/aws-s3          MyWidgetService

npm update コマンドを実行して、すべてのパッケージを最新バージョンに更新します。

npm update

問題②

cdk synth を実行すると、
--app is required either in command-line, in cdk.json or in ~/.cdk.json
と表示される。

cdk synth
****************************************************
*** Newer version of CDK is available [2.64.0]   ***
*** Upgrade recommended (npm install -g aws-cdk) ***
****************************************************

--app is required either in command-line, in cdk.json or in ~/.cdk.json

解決策②

CDK プロジェクトのメインディレクトリでないところで、cdk synth を実行しているため、メインディレクトリに移動してから実行する。

cd sample-app

sample-app % cdk synth

問題③

cdk destroy コマンドを実行しても、デプロイされたリソースが削除されない。

解決策③

ユーザーデータを含むことができるリソースの場合、CDK は removalPolicy プロパティを、デフォルトで RETAIN に設定されます。
removalPolicy プロパティを DESTROY に変更すると、このプロパティを上書きし、cdk destroy コマンドを実行すると、削除されます。
削除プロセス中にリソースが削除されない場合、リソースを手動で削除する必要があります。

from aws_cdk import (
    Stack,
    aws_s3 as s3
)
from constructs import Construct

class MyWidgetServiceStack(Stack):

    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        bucket = s3.Bucket(self,"cdk-s3-multi-sample",
            removal_policy = core.RemovalPolicy.DESTROY)
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