AWS::Serverless 轉換程序 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS::Serverless 轉換程序

AWS::Serverless換是由主控的巨集 CloudFormation,會取得以 AWS 無伺服器應用程式模型 (AWS SAM) 語法撰寫的完整範本,並將其轉換為相容 CloudFormation 範本。如需有關無伺服器應用程式的詳細資訊 AWS SAM,請參閱開發人員指南中的部署 Lambda 應用程式AWS Lambda 開發人員指南中的AWS SAM資源和屬性參考,以及AWS SAM 轉換。AWS Serverless Application ModelGitHub

在下列範例中,範本使用 AWS SAM語法簡化 Lambda 函數及其執行角色的宣告。

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'

從範本建立變更集時,會依轉換所定義的方式 CloudFormation 展開 AWS SAM語法。處理過的範本會擴充 AWS::Serverless::Function 資源,並宣告 AWS Lambda 函數和執行角色。

{ "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"] } }] } } } } }

語法

轉換宣告的值必須是常值字串。您不能使用參數或函數來指定轉換值。下列程式碼片段是轉換宣告範例:

JSON

"Transform" : "AWS::Serverless-2016-10-31"

YAML

Transform: "AWS::Serverless-2016-10-31"