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?

CDKのハンズオンやってみた

Posted at

はじめに

CDK触ったことがなかったのでハンズオンをやってみました。
備忘録も兼ねて投稿します。
使用したハンズオン教材(古いのでバージョンやコードに注意)
HOL-10:コードでAWS環境を管理しよう! AWS CDKハンズオン

CDKの概念

1時間くらいのハンズオンの動画である程度理解できると思います。
CloudFormationを触ったことがある方であればstackの概念にConstructを組み合わせるイメージです。

ディレクトリの作成

  • stackを作成、反映させるための空ディレクトリを作成しておく。

初期化コードの生成

cdk init sample-app --language=typescript

初期設定(初回時)

cdk bootstrap

具体的に何をしてくれるコマンド?

  • S3バケットの作成
  • IAMロールの作成
  • CFnスタックの作成
    リソースを作成するためのバックエンドを作ってくれる

lambdaコード

  • lambdaのフォルダを作成して、jsファイルを入れておく(下記参照)
    Hello Lambda

lib配下のtest_cdk-stackを変更する

  • SQSとSNSっぽいものは不要なため削除してok
  • 作成したいサービスのコンストラクトライブラリを指定する(lambdaとapi gateway)
  • aws-cdk-libから全リソースはインポートできる
import { Duration, Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as apigw from 'aws-cdk-lib/aws-apigateway';

export class TestCdkStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
  const hello = new lambda.Function(this, 'HelloHandler', {
    runtime: lambda.Runtime.NODEJS_18_X,
    code: lambda.Code.fromAsset('lambda'),
    handler: 'hello.handler',
  });

  const api = new apigw.LambdaRestApi(this, 'Endpoint', {
    handler: hello,
  });  
  }
}

エラーが出た場合
公式のハンズオンは古いのでコードの修正が必要です。

  • CDKのバージョンを確認
cdk --version

CDK v2の場合、aws-cdk-lib をインストールしてコードを上のように修正

npm install aws-cdk-lib
  • ランタイムのバージョンを確認

デプロイ

cdk deploy

結果

スクリーンショット 2024-12-30 113931.png

  • 出力結果で返ってきたURLを指定してcurlを実行
C:\test_cdk>curl https://xxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/prod/
Hello, CDK! You've hit 

最後に

High-level Constructsのおかげでコード量がほかのIaCに比べて圧倒的に少ないのが魅力的
他のリソースを作成して応用していきたい

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?