
SAMテンプレートをCloudFormationリソースに変換し、サーバーレスのベストプラクティスを組み込んだLambda関数、IAMロール、ポリシーを生成します。
AWS Serverless Application Model(AWS SAM)transform は、SAM テンプレート を CloudFormation テンプレート に変換する AWS CloudFormation マクロ です。
SAM transform を使用するには、CloudFormation テンプレートの Transform セクション に AWS::Serverless-2016-10-31 を追加します。
SAM transform を使用する利点は次のとおりです。
次を template.yaml として保存します。
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs24.x
Handler: index.handler
InlineCode: |
exports.handler = async (event) => {
console.log(event);
}
そして、SAM CLI でデプロイします。
sam sync --stack-name sam-app
AWS::Serverless::Function リソースは、受信した イベント をログに記録する AWS Lambda 関数を作成します。
内部的には、このテンプレートは次の CloudFormation テンプレートと同等の JSON に変換されます。
Resources:
MyFunction:
Type: AWS::Lambda::Function
Properties:
Code:
ZipFile: |
exports.handler = async (event) => {
console.log(event);
}
Handler: index.handler
Role: !GetAtt MyFunctionRole.Arn
Runtime: nodejs24.x
Tags:
- Key: lambda:createdBy
Value: SAM
MyFunctionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Action:
- sts:AssumeRole
Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Tags:
- Key: lambda:createdBy
Value: SAM
より詳しい入門情報については、開発者ガイド 内の このチュートリアル を参照してください。
Python 3.8 以降がインストールされている必要があります。
仮想環境 を作成します。
python3 -m venv .venv
source .venv/bin/activate
依存関係をセットアップします:
make init
テストを実行します:
make pr
詳細な開発手順については DEVELOPMENT_GUIDE.md を、コントリビューションガイドラインについては CONTRIBUTING.md を参照してください。
チームとのやり取りに最適な方法は GitHub です。issue を作成 するか、ディスカッションを開始 できます。
Slack の #samdev チャンネル に参加することもできます。