# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: MIT-0 AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > parallel-invocations Sample SAM Template for parallel-invocations Resources: EventBus: Type: AWS::Events::EventBus Properties: Name: AnyCompany PublishEventsFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/publish-events/ Handler: publish-events Runtime: go1.x Policies: - EventBridgePutEventsPolicy: EventBusName: !Ref EventBus ExpiredSubscriptionRule: Type: AWS::Events::Rule Properties: Description: Listen on the custom event bus for SubscriptionExpired events EventBusName: !Ref EventBus EventPattern: source: - "com.anycompany" detail-type: - subscription-expired State: ENABLED Targets: - Arn: !Ref ExpiredSubscriptionWorkflow Id: ExpiredSubscriptionWorkflow RoleArn: !GetAtt InvokeWorkflowRole.Arn ExpiredSubscriptionWorkflow: Type: AWS::Serverless::StateMachine Properties: Name: Parallel-Invocation Policies: - LambdaInvokePolicy: FunctionName: !Ref PublishEventsFunction DefinitionUri: statemachine/parallel-invocations.asl.json DefinitionSubstitutions: EventBusName: !GetAtt EventBus.Name PublishEventsFunctionArn: !GetAtt PublishEventsFunction.Arn InvokeWorkflowRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: - events.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: InvokeExpressWorkflowPolicy PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: - states:StartExecution Resource: - !Ref ExpiredSubscriptionWorkflow Outputs: EventBusName: Description: "The name of the event bus" Value: !GetAtt EventBus.Name