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使ってみた

0
Posted at

AWS CDKとは

AWS Cloud Development Kit (AWS CDK) とはAWSサービスをプログラミング言語で定義してデプロイできる仕組みです。
AWSコンソール上で手作業でサービスを構築するよりもミスを防ぐことができたり、環境を複製するのが簡単になったりします。

この記事では、LambdaをAWS CDKからデプロイできることを確認します。

CDKプロジェクトの作成

前提条件

次のツールをインストール済みであることが前提です。

プロジェクトの初期化

CDKプロジェクトは次の手順で作成できます。

# プロジェクトディレクトリに移動
$ cd cdk_intro

# CDKプロジェクトを初期化
$ cdk init app --language typescript

プロジェクトを初期化すると、いくつかのファイルやフォルダが作成されます。
このうち lib ディレクトリを主に編集します。

Lambdaの定義

デプロイするLambdaをプログラミング言語で定義します。

Lambdaの定義で使用するTypeScriptの型定義を追加します。

$ npm install --save-dev @types/aws-lambda

Lambdaを定義します。ここではリクエストに応じてJSONレスポンスを返してくれる関数を定義します。
lambdaディレクトリを作成してファイルに記載します。

lambda/index.ts
import { APIGatewayProxyEventV2, APIGatewayProxyResultV2 } from "aws-lambda";

export const handler = async (
  event: APIGatewayProxyEventV2,
): Promise<APIGatewayProxyResultV2> => {
  console.log("Received event:", JSON.stringify(event, null, 2));

  return {
    statusCode: 200,
    headers: {
      "content-type": "application/json",
    },
    body: JSON.stringify({
      message: "Hello from Lambda Function URL!",
      method: event.requestContext.http.method,
      path: event.rawPath,
      time: new Date().toISOString(),
    }),
  };
};

デプロイ

デプロイするにはAWSアカウントとリージョンを指定する必要があります。
以下のファイルに必要な情報を記載します。

bin/cdk_intro.ts
#!/usr/bin/env node
import * as cdk from "aws-cdk-lib/core";
import { CdkIntroStack } from "../lib/cdk_intro-stack";

const app = new cdk.App();
new CdkIntroStack(app, "CdkIntroStack", {
    // デプロイに使用するアカウント、リージョンを指定
  env: { account: "12345...", region: "ap-northeast-1" },
});

初回のみブートストラップと呼ばれる、CDKデプロイのためのS3やIAMロールの準備が必要です。

$ cdk bootstrap

# 準備に少々時間がかかります

準備ができたら実際にデプロイしてみます。

# デプロイ実行
$ cdk deploy

# 次のようなセキュリティに関する質問が表示されたら、問題ないので「y」を入力してEnterキーを押下する
"--require-approval" is enabled and stack includes security-sensitive updates: 'Do you wish to deploy these changes' (y/n) y

デプロイが成功したら、ブラウザでAWSコンソールを開き「CloudFormation」サービスを開くとデプロイしたスタックが表示されます。

image.png

また、「Lambda」を開くと関数がデプロイされていることを確認できます。

image.png

まとめ

AWS CDKを使うと、プログラムコードでAWSサービスをデプロイできます。
環境を簡単に複製したり、変更時のレビューがしやすいというメリットがあります。

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?