Tansformasi AWS::Serverless - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tansformasi AWS::Serverless

AWS::ServerlessTransformasi, 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, sumber daya AWS SAM, dan referensi properti di Panduan AWS Serverless Application Model Pengembang, dan mengubahnya.AWS SAMGitHub

Dalam contoh berikut, template menggunakan sintaks AWS SAM 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://testBucket/mySourceCode.zip'

Saat membuat set perubahan dari template, CloudFormation memperluas sintaks AWS SAM, 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": "testBucket", "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"