184 lines
4.1 KiB
JSON
184 lines
4.1 KiB
JSON
{
|
|
"AWSTemplateFormatVersion": "2010-09-09",
|
|
"Description": "Lambda Function resource stack creation using Amplify CLI",
|
|
"Parameters": {
|
|
"CloudWatchRule": {
|
|
"Type": "String",
|
|
"Default": "NONE",
|
|
"Description": " Schedule Expression"
|
|
},
|
|
"env": {
|
|
"Type": "String"
|
|
}
|
|
},
|
|
"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",
|
|
"authFunction",
|
|
{
|
|
"Fn::Join": [
|
|
"",
|
|
[
|
|
"authFunction",
|
|
"-",
|
|
{
|
|
"Ref": "env"
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"Environment": {
|
|
"Variables": {
|
|
"ENV": {
|
|
"Ref": "env"
|
|
},
|
|
"REGION": {
|
|
"Ref": "AWS::Region"
|
|
}
|
|
}
|
|
},
|
|
"Role": {
|
|
"Fn::GetAtt": [
|
|
"LambdaExecutionRole",
|
|
"Arn"
|
|
]
|
|
},
|
|
"Runtime": "nodejs12.x",
|
|
"Layers": [],
|
|
"Timeout": "25",
|
|
"Code": {
|
|
"S3Bucket": "amplify-michalvankodev-master-144656-deployment",
|
|
"S3Key": "amplify-builds/authFunction-594d584675367a464230-build.zip"
|
|
}
|
|
}
|
|
},
|
|
"LambdaExecutionRole": {
|
|
"Type": "AWS::IAM::Role",
|
|
"Properties": {
|
|
"RoleName": {
|
|
"Fn::If": [
|
|
"ShouldNotCreateEnvResources",
|
|
"michalvankodevLambdaRole1e657f9c",
|
|
{
|
|
"Fn::Join": [
|
|
"",
|
|
[
|
|
"michalvankodevLambdaRole1e657f9c",
|
|
"-",
|
|
{
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Outputs": {
|
|
"Name": {
|
|
"Value": {
|
|
"Ref": "LambdaFunction"
|
|
}
|
|
},
|
|
"Arn": {
|
|
"Value": {
|
|
"Fn::GetAtt": [
|
|
"LambdaFunction",
|
|
"Arn"
|
|
]
|
|
}
|
|
},
|
|
"Region": {
|
|
"Value": {
|
|
"Ref": "AWS::Region"
|
|
}
|
|
},
|
|
"LambdaExecutionRole": {
|
|
"Value": {
|
|
"Ref": "LambdaExecutionRole"
|
|
}
|
|
}
|
|
}
|
|
} |