AWS::Serverless 변환 - AWS CloudFormation

AWS::Serverless 변환

CloudFormation에 의해 호스팅되는 매크로인 AWS::Serverless 변형은 AWS Serverless Application Model(AWS SAM) 구문에서 작성된 전체 템플릿을 가져온 다음 이를 변형 후 규정 준수 CloudFormation 템플릿으로 확장합니다. 서버리스 애플리케이션과 AWS SAM에 대한 자세한 내용을 알아보려면 AWS Lambda 개발자 안내서의 Lambda 기반 애플리케이션 배포와 AWS Serverless Application Model 개발자 안내서의 AWS SAM resource and property reference를 참조하세요.

다음 예제에서 템플릿은 AWS SAM 구문을 사용하여 Lambda 함수 및 해당 실행 역할의 선언을 간소화합니다.

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

템플릿에서 변경 세트 생성 시 CloudFormation에서 AWS SAM 구문을 변환에 정의된 대로 확장합니다. 처리된 템플릿은 AWS::Serverless::Function 리소스를 확장하여 AWS Lambda 함수 및 해당 실행 역할을 선언합니다.

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