認識 AWS CDK 部署工具

安裝套件

安裝套件。

1
npm -g install aws-cdk

建立專案

建立專案。

1
mkdir cdk_workshop && cd cdk_workshop

初始化專案。

1
cdk init sample-app --language python

啟動環境。

1
source .venv/bin/activate

安裝依賴套件。

1
pip install -r requirements.txt

實作

建立 lambda 資料夾。

1
mkdir lambda

建立 lambda/hello.py 檔。

1
2
3
4
5
6
7
8
9
10
11
import json

def handler(event, context):
print('request: {}'.format(json.dumps(event)))
return {
'statusCode': 200,
'headers': {
'Content-Type': 'text/plain'
},
'body': 'Hello, CDK! You have hit {}\n'.format(event['path'])
}

修改 cdk_workshop/cdk_workshop_stack.py 檔。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from constructs import Construct
from aws_cdk import (
Stack,
aws_lambda as _lambda,
)

class CdkWorkshopStack(Stack):
def __init__(self, scope: Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)

# Defines an AWS Lambda resource
my_lambda = _lambda.Function(
self, 'HelloHandler',
runtime=_lambda.Runtime.PYTHON_3_11,
code=_lambda.Code.from_asset('lambda'),
handler='hello.handler',
)

列出所有堆疊。

1
cdk ls

查看堆疊變化。

1
aws-vault exec your-profile -- cdk diff

部署

啟動初始化程序。

1
aws-vault exec your-profile -- cdk bootstrap

部署應用程式。

1
aws-vault exec your-profile -- cdk deploy

如果要清理的話,移除應用程式。

1
aws-vault exec your-profile -- cdk destroy

程式碼

參考資料