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 exemplo
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.
Abordagens
Modelo combinado
A primeira abordagem usa oEvents
Para 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 oEventBusName
para 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.
-
Primeiro, você define a função do Lambda:
atmConsumerCase1Fn: Type: AWS::Serverless::Function Properties: CodeUri: atmConsumer/ Handler: handler.case1Handler Runtime: nodejs12.x
-
Em seguida, defina a regra usando um
AWS::Events::Rule
recurso. 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"
-
Por fim, defina um
AWS::Lambda::Permission
Recurso 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"