AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > lambda-ecs-launcher Sample SAM Template for lambda-ecs-launcher Globals: Function: Timeout: 30 MemorySize: 512 Parameters: ECSClusterName: Description: "ECS Cluster name" Type: String TaskDefinition: Description: "ECS Task Definition name" Type: String Resources: LambdaECSTaskFunction: Type: AWS::Serverless::Function Properties: PackageType: Image Environment: Variables: CLUSTERNAME: !Ref ECSClusterName TASKDEFINITION: !Ref TaskDefinition Policies: - Statement: - Sid: ECSRunTask Effect: Allow Action: - ecs:RunTask Resource: !Sub 'arn:aws:ecs:${AWS::Region}:${AWS::AccountId}:task-definition/${TaskDefinition}' - Sid: IamPassRole Effect: Allow Action: - iam:PassRole Resource: !Sub 'arn:aws:iam::${AWS::AccountId}:role/ecsanywhereTaskExecutionRole' Events: FileProcessor: Type: S3 Properties: Bucket: !Ref SrcBucket Events: s3:ObjectCreated:* Filter: S3Key: Rules: - Name: suffix Value: '.csv' Metadata: DockerTag: go1.x-v1 DockerContext: . Dockerfile: Dockerfile OrdersTable: Type: AWS::DynamoDB::Table Properties: TableName: Order BillingMode: PAY_PER_REQUEST AttributeDefinitions: - AttributeName: OrderId AttributeType: S KeySchema: - AttributeName: OrderId KeyType: HASH SrcBucket: Type: AWS::S3::Bucket Properties: BucketName: !Sub 'aws-file-drop-${AWS::AccountId}' Outputs: LambdaECSTaskFunction: Description: "Lambda ECS Task Function ARN" Value: !Ref LambdaECSTaskFunction Bucket: Description: "S3 Bucket Name" Value: !Ref SrcBucket