1
1

More than 1 year has passed since last update.

AWSCDKVERSION2の対応

Last updated at Posted at 2022-07-22

今回AWS CDKVERSION2をつかうにあたりはまったところがあったのでそれを記事にしてみました。
今回はecsでALBを使いブラウザ上に表示させることをやってみようと思います。
aws configureは設定済みと考えます。

nodeのインストール

curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install -y nodejs

cdkのインストール

 mkdir hello-cdk
 cd hello-cdk
 sudo npm install -g aws-cdk
 cdk init app --language typescript

Verison2で大事なのはCDK.jsonとpackage.jsonの編集です。

CDK.json

{
  "app": "npx ts-node --prefer-ts-exts bin/hello-cdk.ts",
    "versionReporting": false,
  "context": {
    "systemName": "hello-cdk",
    "envType": "stg",
    "keyName": ""
  }
}

package.json

{
  "name": "hello-cdk",
  "version": "0.1.0",
  "bin": {
    "hello-cdk": "bin/hello-cdk.js"
  },
  "scripts": {
    "build": "tsc",
    "watch": "tsc -w",
    "test": "jest",
    "cdk": "cdk"
  },
  "devDependencies": {
    "@types/jest": "^26.0.23",
    "@types/node": "10.17.27",
    "aws-cdk-lib": "^2.0.0",
    "constructs": "^10.0.0",
    "jest": "^26.6.3",
    "ts-jest": "^26.2.0",
    "ts-node": "^9.0.0",
    "typescript": "~3.9.7"
  },
  "dependencies": {
    "aws-cdk-lib": "^2.0.0",
    "constructs": "^10.0.0",
    "source-map-support": "^0.5.16"
  },
  "jest": {
    "moduleFileExtensions": [
      "js"
    ]
  }
}

上記のように直した後

cdk bootstrap aws://<アカウント番号>/<リージョン名>
npm install

プログラムの部分。

import { Stack, StackProps } from 'aws-cdk-lib';
import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Construct } from 'constructs';
import * as ecs from 'aws-cdk-lib/aws-ecs';
import * as ecsp from 'aws-cdk-lib/aws-ecs-patterns';


export class HelloCdkStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
 
    new ecsp.ApplicationLoadBalancedFargateService(this, 'MyWebServer', {
      taskImageOptions: {
        image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
      },
      publicLoadBalancer: true
    });
  }
}
プログラミングで大切な部分は
import * as ecs from '@aws-cdk-lib/aws-ecs';---→import * as ecs from 'aws-cdk-lib/aws-ecs';
に変更すること@を除くことです。
後古いバージョンだと@aws-cdkがついていると思いますが、それをすべてaws-cdk-libに書き換えてください。

これでVERSION2のほとんどは動くと思います。
下記にgithub載せます。
github

参考資料

1
1
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
1
1