Usar o Amazon EventBridge eAWS Serverless Application Modelmodelos - Amazon EventBridge

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar o Amazon EventBridge eAWS Serverless Application Modelmodelos

Você pode criar e testarregrasmanualmente no console EventBridge, o que pode ajudar no processo de desenvolvimento à medida que você refinarPadrões de eventos. No entanto, quando você estiver pronto para implantar seu aplicativo, será mais fácil usar uma estrutura comoAWS SAMpara lançar todos os seus recursos sem servidor de forma consistente.

Usaremos issoAplicativo de exemploPara analisar as maneiras de usar o que você pode usarAWS SAMmodelos para criar recursos do EventBridge. O arquivo template.yaml neste exemplo é umAWS SAMmodelo que define quatroAWS Lambdafunciona e mostra duas maneiras diferentes de integrar as funções do Lambda com o EventBridge.

Para obter um passo a passo deste aplicativo de exemplo, consulteCrie um aplicativo de EventBridge amostra da Amazon.

Existem duas abordagens para usar o EventBridge eAWS SAMModelos do. Para integrações simples em que uma função do Lambda é invocada por uma regra, oModelo combinadoabordagem é recomendada. Se você tiver lógica de roteamento complexa ou se estiver se conectando a recursos fora de suaAWS SAMTemplate, oModelo separadoabordagem é a melhor escolha.

Modelo combinado

A primeira abordagem usa oEventsPara configurar a regra EventBridge. O exemplo de código a seguir define umeventoQue invoca sua função do Lambda.

nota

Este exemplo cria automaticamente a regra no padrãoÔnibus de eventos, que existe em todosAWSconta. Para associar a regra a um barramento de eventos personalizado, você pode adicionar oEventBusNamepara o modelo.

atmConsumerCase3Fn: Type: AWS::Serverless::Function Properties: CodeUri: atmConsumer/ Handler: handler.case3Handler Runtime: nodejs12.x Events: Trigger: Type: CloudWatchEvent Properties: Pattern: source: - custom.myATMapp detail-type: - transaction detail: result: - "anything-but": "approved"

Esse código YAML é equivalente a um padrão de evento no console EventBridge. No YAML, você só precisa definir o padrão de evento eAWS SAMcria automaticamente uma função IAM com as permissões necessárias.

Modelo separado

Na segunda abordagem para definir uma configuração do EventBridge emAWS SAM, os recursos são separados com mais clareza no modelo.

  1. Primeiro, você define a função do Lambda:

    atmConsumerCase1Fn: Type: AWS::Serverless::Function Properties: CodeUri: atmConsumer/ Handler: handler.case1Handler Runtime: nodejs12.x
  2. Em seguida, defina a regra usando umAWS::Events::Rulerecurso. As propriedades definem o padrão de evento e também podem especificartem como alvo. Você pode definir explicitamente vários alvos.

    EventRuleCase1: Type: AWS::Events::Rule Properties: Description: "Approved transactions" EventPattern: source: - "custom.myATMapp" detail-type: - transaction detail: result: - "approved" State: "ENABLED" Targets: - Arn: Fn::GetAtt: - "atmConsumerCase1Fn" - "Arn" Id: "atmConsumerTarget1"
  3. Por fim, defina umAWS::Lambda::PermissionRecurso que concede permissões do EventBridge para invocar o destino.

    PermissionForEventsToInvokeLambda: Type: AWS::Lambda::Permission Properties: FunctionName: Ref: "atmConsumerCase1Fn" Action: "lambda:InvokeFunction" Principal: "events.amazonaws.com" SourceArn: Fn::GetAtt: - "EventRuleCase1" - "Arn"