j40-cejst-2/infrastructure/serverless.yml

88 lines
2.6 KiB
YAML
Raw Normal View History

service: justice40-data-harvester
configValidationMode: error
frameworkVersion: ">=2.48.0"
provider:
name: aws
runtime: nodejs12.x
stage: ${opt:stage, 'sit'}
region: ${opt:region, 'us-east-1'}
profile: ${self:provider.stage}
lambdaHashingVersion: "20201221"
deploymentBucket:
name: ${self:custom.environment.DEPLOYMENT_BUCKET_PREFIX}-${self:provider.stage}-${self:provider.region}-${self:service}
blockPublicAccess: true
maxPreviousDeploymentArtifacts: 5
stackName: ${self:custom.environment.STACK_NAME_PREFIX}${self:provider.stage}-${self:service}
iam:
role:
statements:
- Effect: "Allow"
# Condition:
# ArnEquals:
# ecs:cluster:
# Fn::GetAtt: [ ECSCluster, Arn ]
Action: "ecs:RunTask"
Resource: "*"
- Effect: "Allow"
# Condition:
# ArnEquals:
# ecs:cluster:
# Fn::GetAtt: [ ECSCluster, Arn ]
Action:
- "iam:ListInstanceProfiles"
- "iam:ListRoles"
- "iam:PassRole"
Resource: "*"
- Effect: Allow
Action:
- "s3:ListBucket"
Resource:
- Fn::Join:
- ""
- - "arn:aws:s3:::"
- Ref: DataBucket
- "/*"
- Effect: Allow
Action:
- "s3:DeleteObject"
- "s3:GetObject"
- "s3:PutObject"
- "s3:PutObjectAcl"
Resource:
- Fn::Join:
- ""
- - "arn:aws:s3:::"
- Ref: DataBucket
plugins:
- serverless-certificate-creator
- serverless-pseudo-parameters
custom:
environment: ${file(./environment.yml):${self:provider.stage}}
namespace: justice40 # Used to tag resources with a "Namespace".
namespaceShort: j40 # Used to prefix stack name, deployment bucket, resource "Name" tags, etc.
customCertificate:
certificateName: ${self:provider.stage}-${self:service}.${self:custom.environment.HOSTED_ZONE_DOMAIN}
hostedZoneIds: ${self:custom.environment.HOSTED_ZONE_ID_DOMAIN}
region: ${self:provider.region}
tags:
Name: ${self:provider.stage}-${self:service}.${self:custom.environment.HOSTED_ZONE_DOMAIN}
Environment: ${self:provider.stage}
rewriteRecords: true
enabled: ${self:custom.environment.SHOULD_CREATE_SSL_CERTIFICATE}
functions: ${file(./functions.yml)}
resources:
- ${file(./conditions.yml)}
- ${file(./resources-s3.yml)}
- ${file(./resources-cloudfront.yml)}
- ${file(./resources-ecs.yml)}
- ${file(./resources-route53.yml)}