Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tansformasi AWS::Serverless
AWS::Serverless
Transformasi, yang merupakan makro yang dihosting oleh CloudFormation, mengambil seluruh template yang ditulis dalam sintaks AWS Serverless Application Model (AWS SAM) dan mengubah dan memperluasnya menjadi template yang sesuai. CloudFormation Untuk informasi selengkapnya tentang aplikasi tanpa server dan AWS SAM, lihat Menerapkan aplikasi berbasis Lambda di Panduan AWS Lambda Pengembang, referensi AWS SAM sumber daya, dan properti di Panduan AWS Serverless Application Model Pengembang, dan mengubahnya.AWS SAMGitHub
Dalam contoh berikut, template menggunakan AWS SAM sintaks untuk menyederhanakan deklarasi fungsi Lambda dan peran eksekusinya.
Transform: AWS::Serverless-2016-10-31 Resources: MyServerlessFunctionLogicalID: Type: AWS::Serverless::Function Properties: Handler:
index.handler
Runtime:nodejs20.x
CodeUri: 's3://amzn-s3-demo-bucket/MySourceCode.zip
'
Saat membuat set perubahan dari template, CloudFormation memperluas AWS SAM sintaks, seperti yang didefinisikan oleh transformasi. Templat yang diproses memperluas sumber daya AWS::Serverless::Function
, mendeklarasikan fungsi AWS Lambda dan peran eksekusi.
{ "Resources": { "MyServerlessFunctionLogicalID": { "Type": "AWS::Lambda::Function", "Properties": { "Handler": "
index.handler
", "Code": { "S3Bucket": "amzn-s3-demo-bucket
", "S3Key": "MySourceCode.zip
" }, "Role": { "Fn::GetAtt": ["FunctionNameRole", "Arn"] }, "Runtime": "nodejs20.x
" } }, "FunctionNameRole": { "Type": "AWS::IAM::Role", "Properties": { "ManagedPolicyArns": ["arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"], "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": { "Service": ["lambda.amazonaws.com"] } }] } } } } }
Sintaks
Nilai untuk pernyataan perubahan harus berupa string literal. Anda tidak dapat menggunakan parameter atau fungsi untuk menentukan nilai perubahan. Cuplikan berikut ini adalah contoh deklarasi transformasi:
JSON
"Transform" : "AWS::Serverless-2016-10-31"
YAML
Transform: "AWS::Serverless-2016-10-31"