AWS CDKに触れてみる
はじめに
CDKを使ってLambdaを作成してみるところまでを目標とします。
環境
今回はCloud9を使用します。
$ python --version
Python 3.6.10
$ cdk --version
1.27.0 (build a98c0b3)
CDKが入っていなければ以下のコマンドでインストールします。
$ npm install -g aws-cdk
やってみる
CDKを使う準備
まずCDKを使うために色々準備します
プロジェクトフォルダを作成
$ mkdir hogehoge
$ cd hogehoge
CDKの初期設定
初期設定をします
cdk init --language python
source .env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
AWSユーザーデータの利用設定も行う
$ cdk bootstrap
Bootstrapping environment aws://999.../ap-northeast-1...
Environment aws://999.../ap-northeast-1 bootstrapped (no changes).
これで準備完了です
CDKを使ってみる
Lambdaを作成していきます
pythonファイルの準備
Lambdaで使用するpythonファイルを準備します
$ mkdir lambda
$ touch lambda/index.py
内容はあまり気にしないので適当に
import json
def handler(event, context):
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
スタックを作成
最初に作成したhogehoge
ディレクトリ下にhogehoge/hogehoge_stack.py
があるので、ここにリソースを作成するためのコーディングをしていく。
公式が丁寧でわかりやすい。
import aws_cdk.core as core
import aws_cdk.aws_lambda as aws_lambda
class HogehogeStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
lambda_func = aws_lambda.Function(
self, 'lambda_func1',
function_name = "lambda_func1",
runtime = aws_lambda.Runtime.PYTHON_3_8,
code = aws_lambda.Code.asset('lambda'),
handler = 'index.handler'
)
$ echo "aws-cdk.aws-lambda" >> requirements.txt
$ pip install -r requirements.txt
AWSリソースの作成
$ cdk diff
$ cdk deploy
$ cdk destroy
後処理
pushするならしちゃいましょう
$ git add .
$ git remote add origin [作成済みのリポジトリを使用]
$ git push -u origin master
まとめ
色々設定しなきゃいけないのかな、と思っていましたが結構簡単に作れちゃうのがいいですね。
他の環境作成ができるサービスとの住み分けはどんな感じなんでしょうかねー
補足
複数のstackを作成するにはapp.py
を編集する必要があります
HogehogeStack(app, "stack_hogehoge")
FugafugaStack(app, "stack_fugafuga") # こんな感じ
複数のstackを作成した場合にはcdk deploy
だと怒られるので以下のように書く
$ cdk list
stack_hogehoge stack_fugafuga
$ cdk deploy stack_*
Author And Source
この問題について(AWS CDKに触れてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/knoth071211/items/dd0bc5f600b310723c6f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .