AWS::Serverless 変換 - AWS CloudFormation

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

AWS::Serverless 変換

AWS CloudFormation によってホストされるマクロである AWS::Serverless 変換は、AWS Serverless Application Model (AWS SAM) 構文で記述されたテンプレート全体を受け取り、それを準拠した AWS CloudFormation テンプレートに変換および拡張します。サーバーレスアプリケーションおよび AWS SAM の詳細については 、「AWS Lambda Developer Guide」の「Lambda ベースのアプリケーションのデプロイ 」および「AWS Serverless Application Model 開発者ガイド」の「 AWS SAM リソースとプロパティの参照」を参照してください。

次の例では、テンプレートは AWS SAM 構文を使用して Lambda 関数とその実行ロールの宣言を簡素化しています。

Transform: AWS::Serverless-2016-10-31 Resources: MyServerlessFunctionLogicalID: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: nodejs8.10 CodeUri: 's3://testBucket/mySourceCode.zip'

テンプレートから変更セットを作成すると、AWS CloudFormation はトランスフォームの定義に従って AWS SAM 構文を拡張します。処理されたテンプレートは、AWS Lambda 関数および実行ロールが宣言された AWS::Serverless::Function リソースを展開します。

{ "Resources": { "MyServerlessFunctionLogicalID": { "Type": "AWS::Lambda::Function", "Properties": { "Handler": "index.handler", "Code": { "S3Bucket": "testBucket", "S3Key": "mySourceCode.zip" }, "Role": { "Fn::GetAtt": ["FunctionNameRole", "Arn"] }, "Runtime": "nodejs8.10" } }, "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"