「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
AWS::Serverless 変換
AWS CloudFormation によってホストされるマクロである AWS::Serverless
変換は、AWS Serverless Application Model (AWS SAM) 構文で記述されたテンプレート全体を受け取り、それを準拠した AWS
CloudFormation テンプレートに変換および拡張します。サーバーレスアプリケーションおよび AWS SAM の詳細については 、「AWS Lambda Developer Guide」の「Lambda ベースのアプリケーションのデプロイ 」および「AWS サーバーレスアプリケーションモデル 開発者ガイド」の「 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"