0. はじめに
この記事はAWS上にLambdaをアップロードする方法についてのメモです
1.CLIの環境構築
-
AWS CLIの環境構築する
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/prerequisites.html -
AWS SAM CLIの環境構築する
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/install-sam-cli.html -
SAMを使ってLambdaのコードを書く
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html
2. Pythonの環境構築
python3 --version
仮想環境の作成
python3 -m venv venv
仮想環境のアクティベート
source venv/bin/activate
3.SAMでデプロイする
template.yamlを作成する
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Resources:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
CodeUri: src/
Handler: app.lambda_handler
Runtime: python3.12
pythonでLambdaのコードを書く
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': 'Hello from Lambda!'
}
pythonコードをビルドする
sam build
ビルドしたファイルをSAMコマンドでデプロイする
## 初回
sam deploy --guided
## 次回
sam deploy
おわりに
IaC達の選択肢
- AWS cloudformation
- AWS CDK
- AWS SAM (Lambda)
- terraform (3rd Party)
- serverless framework (3rd Party)
どれがいい?
AWS公式? 3rd Party?
- 最新機能追加されたら公式の方が対応早い
- 3rd Partyの場合(terraform)、マルチクラウドに対応していて書き方一緒
→ 辞められたら負債になりそう