AWS Lambda Create a Lambda Function with CloudFromation: Difference between revisions
Jump to navigation
Jump to search
(6 intermediate revisions by the same user not shown) | |||
Line 36: | Line 36: | ||
Statement: | Statement: | ||
- Effect: 'Allow' | - Effect: 'Allow' | ||
Action: | |||
- 'logs:CreateLogGroup' | |||
- 'logs:CreateLogStream' | |||
- 'logs:PutLogEvents' | |||
Resource: | |||
- 'arn:aws:logs:*:*:*' | |||
- Effect: 'Allow' | |||
Action: | Action: | ||
- ' | - 'ec2:CreateNetworkInterface' | ||
- ' | - 'ec2:DescribeNetworkInterfaces' | ||
- ' | - 'ec2:DeleteNetworkInterface' | ||
Resource: | Resource: | ||
- ' | - '*' | ||
LambdaExample: | LambdaExample: | ||
Type: | Type: AWS::Lambda::Function | ||
Properties: | Properties: | ||
[[AWS_Lambda_Concepts#Function_Name|FunctionName]]: | [[AWS_Lambda_Concepts#Function_Name|FunctionName]]: lambda-experiment | ||
Description: 'Some description' | Description: 'Some description' | ||
[[AWS_Lambda_Concepts#Code|Code]]: | [[AWS_Lambda_Concepts#Code|Code]]: | ||
S3Bucket: a-bucket | S3Bucket: a-bucket | ||
S3Key: a-deployment-package | S3Key: a-deployment-package.jar | ||
# S3ObjectVersion: String | # S3ObjectVersion: String | ||
# ZipFile: String | # ZipFile: String | ||
[[AWS_Lambda_Concepts#Handler_Code|Handler]]: | [[AWS_Lambda_Concepts#Handler_Code|Handler]]: playground.amazon.lambda.LambdaExperiment::handleRequest | ||
[[AWS_Lambda_Concepts#Runtime|Runtime]]: java8 | [[AWS_Lambda_Concepts#Runtime|Runtime]]: java8 | ||
[[AWS_Lambda_Concepts#Environment_Variables|Environment]]: | [[AWS_Lambda_Concepts#Environment_Variables|Environment]]: | ||
Line 60: | Line 66: | ||
[[AWS_Lambda_Concepts#Relationship_to_a_VPC|VpcConfig]]: | [[AWS_Lambda_Concepts#Relationship_to_a_VPC|VpcConfig]]: | ||
SubnetIds: | SubnetIds: | ||
- | - !Ref BlueSubnet | ||
- !Ref RedSubnet | |||
SecurityGroupIds: | SecurityGroupIds: | ||
- ... | - ... | ||
Line 76: | Line 83: | ||
Tags: | Tags: | ||
Resource Tag | Resource Tag | ||
Working example: | |||
<syntaxhighlight lang='yaml'> | |||
</syntaxhighlight> | |||
=CloudFormation Stack Example= | |||
{{External|https://github.com/ovidiuf/aws-release-pipeline/blob/master/lambda/lambda.yaml}} | |||
=Create a bash Lambda= | =Create a bash Lambda= |
Latest revision as of 03:41, 8 April 2019
External
Internal
Resource Types
AWS::Lambda::Function
Resources: LambdaExecutionRole: Type: AWS::IAM::Role Properties: RoleName: playground-lambda-execution-role Path: /service-role/ AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: 'Allow' Principal: Service: - "lambda.amazonaws.com" Action: - "sts:AssumeRole" Policies: - PolicyName: 'inline-policy' PolicyDocument: Version: '2012-10-17' Statement: - Effect: 'Allow' Action: - 'logs:CreateLogGroup' - 'logs:CreateLogStream' - 'logs:PutLogEvents' Resource: - 'arn:aws:logs:*:*:*' - Effect: 'Allow' Action: - 'ec2:CreateNetworkInterface' - 'ec2:DescribeNetworkInterfaces' - 'ec2:DeleteNetworkInterface' Resource: - '*' LambdaExample: Type: AWS::Lambda::Function Properties: FunctionName: lambda-experiment Description: 'Some description' Code: S3Bucket: a-bucket S3Key: a-deployment-package.jar # S3ObjectVersion: String # ZipFile: String Handler: playground.amazon.lambda.LambdaExperiment::handleRequest Runtime: java8 Environment: Variables: MY_ENV_VAR: 'my value' VpcConfig: SubnetIds: - !Ref BlueSubnet - !Ref RedSubnet SecurityGroupIds: - ... MemorySize: 128 Role: !GetAtt LambdaExecutionRole.Arn Timeout: Integer ReservedConcurrentExecutions: Integer DeadLetterConfig: DeadLetterConfig KmsKeyArn: String Layers: - String TracingConfig: TracingConfig Tags: Resource Tag
Working example: