AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::Serverless-2016-10-31 Parameters: SourceRepositoryName: Type: String Description: Enter the CodeCommit repository name to source for replication. TargetRepositoryName: Type: String Description: Enter the CodeCommit repository name to target for replication. TargetRepositoryRegion: Type: String Description: Enter the CodeCommit repository region to target for replication. Resources: Replicator: Type: 'AWS::Serverless::Function' Properties: Handler: cwecc.ReplicateRepositoryHandler Runtime: java8 CodeUri: ./build/distributions/ Description: CodeCommit Replication MemorySize: 1028 Timeout: 300 Environment: Variables: TARGET_REPO_NAME: !Ref TargetRepositoryName TARGET_REPO_REGION: !Ref TargetRepositoryRegion Events: ReferenceCreatedOrUpdated: Type: CloudWatchEvent Properties: Pattern: source: - aws.codecommit resources: - !Sub 'arn:aws:codecommit:${AWS::Region}:${AWS::AccountId}:${SourceRepositoryName}' detail: event: - referenceCreated - referenceUpdated Policies: - Version: '2012-10-17' Statement: - Effect: Allow Resource: !Sub 'arn:aws:codecommit:${AWS::Region}:${AWS::AccountId}:${SourceRepositoryName}' Action: - 'codecommit:GetRepository' - 'codecommit:GitPull' - Effect: Allow Resource: !Sub 'arn:aws:codecommit:${TargetRepositoryRegion}:${AWS::AccountId}:${TargetRepositoryName}' Action: - 'codecommit:GetRepository' - 'codecommit:GitPush'