AWSTemplateFormatVersion: "2010-09-09" Description: Amazon Transcribe Post Call Analytics - PCA Server - Load sample audio files Transform: AWS::Serverless-2016-10-31 Parameters: SupportFilesBucketName: Type: AWS::SSM::Parameter::Value<String> Default: SupportFilesBucketName InputBucketName: Type: AWS::SSM::Parameter::Value<String> Default: InputBucketName InputBucketRawAudio: Type: AWS::SSM::Parameter::Value<String> Default: InputBucketRawAudio # DependsOn parameters used only to force conditional dependency from main stack DependsOnPCAServer: Type: String Default: NotRequired DependsOnPCADashboards: Type: String Default: NotRequired Globals: Function: Runtime: python3.8 MemorySize: 1024 Timeout: 60 Resources: CopySamplesRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: - "sts:AssumeRole" ManagedPolicyArns: - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" Policies: - PolicyName: s3-input-bucket-write-policy PolicyDocument: Statement: Effect: Allow Action: - s3:PutObject Resource: - !Sub arn:aws:s3:::${InputBucketName}/* - !Sub arn:aws:s3:::${SupportFilesBucketName}/* CopySamplesFunction: Type: "AWS::Lambda::Function" Properties: Code: ./src Handler: copy-samples.lambda_handler Runtime: python3.8 Timeout: 300 Role: !GetAtt CopySamplesRole.Arn Environment: Variables: SUPPORTFILES_BUCKET_NAME: !Ref SupportFilesBucketName INPUT_BUCKET_NAME: !Ref InputBucketName INPUT_BUCKET_RAW_AUDIO: !Ref InputBucketRawAudio CopySamples: Type: "AWS::CloudFormation::CustomResource" Properties: ServiceToken: !GetAtt CopySamplesFunction.Arn # trigger update to re-copy files when params below change SamplesVersion: 0.3 DependsOnPCADashboards: !Ref DependsOnPCADashboards Outputs: RolesForKMSKey: Value: !Join - ', ' - - !Sub '"${CopySamplesRole.Arn}"'