Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "AWSTemplateFormatVersion": "2010-09-09",
- "Description": "Lambda resource stack creation using Amplify CLI",
- "Parameters": {
- "env": {
- "Type": "String"
- },
- "DynamoDBPhotoTableArn": {
- "Type": "String",
- "Default": "DYNAMODB_PHOTO_TABLE_ARN_PLACEHOLDER"
- }
- },
- "Conditions": {
- "ShouldNotCreateEnvResources": {
- "Fn::Equals": [
- {
- "Ref": "env"
- },
- "NONE"
- ]
- }
- },
- "Resources": {
- "LambdaFunction": {
- "Type": "AWS::Lambda::Function",
- "Metadata": {
- "aws:asset:path": "./src",
- "aws:asset:property": "Code"
- },
- "Properties": {
- "Handler": "index.handler",
- "FunctionName": {
- "Fn::If": [
- "ShouldNotCreateEnvResources",
- "S3_TRIGGER_NAME_PLACEHOLDER",
- {
- "Fn::Join": [
- "",
- [
- "S3_TRIGGER_NAME_PLACEHOLDER",
- "-",
- {
- "Ref": "env"
- }
- ]
- ]
- }
- ]
- },
- "Environment": {
- "Variables": {
- "ENV": {
- "Ref": "env"
- },
- "THUMBNAIL_WIDTH": "80",
- "THUMBNAIL_HEIGHT": "80",
- "DYNAMODB_PHOTOS_TABLE_ARN": { "Ref" : "DynamoDBPhotoTableArn" }
- }
- },
- "Role": {
- "Fn::GetAtt": [
- "LambdaExecutionRole",
- "Arn"
- ]
- },
- "Runtime": "nodejs8.10",
- "Timeout": "25"
- }
- },
- "LambdaExecutionRole": {
- "Type": "AWS::IAM::Role",
- "Properties": {
- "RoleName": {
- "Fn::If": [
- "ShouldNotCreateEnvResources",
- "S3_TRIGGER_NAME_PLACEHOLDERLambdaRole66924eb7",
- {
- "Fn::Join": [
- "",
- [
- "S3_TRIGGER_NAME_PLACEHOLDERLambdaRole66924eb7",
- "-",
- {
- "Ref": "env"
- }
- ]
- ]
- }
- ]
- },
- "AssumeRolePolicyDocument": {
- "Version": "2012-10-17",
- "Statement": [
- {
- "Effect": "Allow",
- "Principal": {
- "Service": [
- "lambda.amazonaws.com"
- ]
- },
- "Action": [
- "sts:AssumeRole"
- ]
- }
- ]
- }
- }
- },
- "lambdaexecutionpolicy": {
- "DependsOn": [
- "LambdaExecutionRole"
- ],
- "Type": "AWS::IAM::Policy",
- "Properties": {
- "PolicyName": "lambda-execution-policy",
- "Roles": [
- {
- "Ref": "LambdaExecutionRole"
- }
- ],
- "PolicyDocument": {
- "Version": "2012-10-17",
- "Statement": [
- {
- "Effect": "Allow",
- "Action": [
- "logs:CreateLogGroup",
- "logs:CreateLogStream",
- "logs:PutLogEvents"
- ],
- "Resource": {
- "Fn::Sub": [
- "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*",
- {
- "region": {
- "Ref": "AWS::Region"
- },
- "account": {
- "Ref": "AWS::AccountId"
- },
- "lambda": {
- "Ref": "LambdaFunction"
- }
- }
- ]
- }
- }
- ]
- }
- }
- },
- "AllPrivsForDynamo": {
- "DependsOn": [
- "LambdaExecutionRole"
- ],
- "Type": "AWS::IAM::Policy",
- "Properties": {
- "PolicyName": "AllPrivsForDynamo",
- "Roles": [
- {
- "Ref": "LambdaExecutionRole"
- }
- ],
- "PolicyDocument": {
- "Version": "2012-10-17",
- "Statement": [
- {
- "Effect": "Allow",
- "Action": [
- "dynamodb:*"
- ],
- "Resource": { "Ref" : "DynamoDBPhotoTableArn" }
- }
- ]
- }
- }
- },
- "RekognitionDetectLabels": {
- "DependsOn": [
- "LambdaExecutionRole"
- ],
- "Type": "AWS::IAM::Policy",
- "Properties": {
- "PolicyName": "RekognitionDetectLabels",
- "Roles": [
- {
- "Ref": "LambdaExecutionRole"
- }
- ],
- "PolicyDocument": {
- "Version": "2012-10-17",
- "Statement": [
- {
- "Effect": "Allow",
- "Action": [
- "rekognition:detectLabels"
- ],
- "Resource": "*"
- }
- ]
- }
- }
- }
- },
- "Outputs": {
- "Name": {
- "Value": {
- "Ref": "LambdaFunction"
- }
- },
- "Arn": {
- "Value": {
- "Fn::GetAtt": [
- "LambdaFunction",
- "Arn"
- ]
- }
- },
- "Region": {
- "Value": {
- "Ref": "AWS::Region"
- }
- },
- "LambdaExecutionRole": {
- "Value": {
- "Ref": "LambdaExecutionRole"
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement