Aws:CloudFormation:Lambda01
30.Lambda関数をS3にアップロードしたファイルからデプロイする
前提
・ZipファイルにしたLambda関数を、S3にアップロードしたファイルからデプロイします。
・Lambda関数はPythonで記述しています。
・ColudFormationのテンプレートはyaml形式で記述しています。
資材
・Lambda関数のzipファイル
・ColudFormationのテンプレート
Lambda関数のzipファイル
ColudFormationのテンプレート
今回は以下の通りでLambdaで使用するIAMロールと、Lambda関数を作成するテンプレートにしています。
下記の4つのパラメータを「Parameters」で指定しています。
・PrmS3BucketName :Lambda関数のzipファイルをアップロードするバケット名
・PrmLambdaFunctionZipName :Lambda関数のzipファイル名
・PrmLambdaFunctionName :Lambda関数名
・PrmLambdaFunctionRoleName :Lambda関数で使用するIAMロール名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
AWSTemplateFormatVersion: "2010-09-09" Description: Lambda deploy test . Parameters: PrmS3BucketName: Description: S3Bucket name with LambdaFunctionZip? Type: String PrmLambdaFunctionZipName: Description: LambdaFunction ZipName? Type: String PrmLambdaFunctionName: Description: LambdaFunctionName? Type: String PrmLambdaFunctionRoleName: Description: LambdaFunctionRoleName? Type: String Resources: ### IamRole ### ResLambdaFunctionRole: Type: "AWS::IAM::Role" Properties: RoleName: !Ref PrmLambdaFunctionRoleName AssumeRolePolicyDocument: Version: "2012-10-17" Statement: Effect: "Allow" Action: "sts:AssumeRole" Principal: Service: "lambda.amazonaws.com" ### LambdaFunction ### ResLambdaFunction: Type: AWS::Lambda::Function DependsOn: ResLambdaFunctionRole Properties: Code: S3Bucket: !Ref PrmS3BucketName S3Key: !Ref PrmLambdaFunctionZipName FunctionName: !Ref PrmLambdaFunctionName Handler: SampleEventFunction.lambda_handler Runtime: python3.8 Timeout: 60 MemorySize: 128 Role: !GetAtt ResLambdaFunctionRole.Arn |
Aws/CloudFormation/Lambda01.txt · 最終更新: 2023/01/12 by admin