Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Utilización AWS Serverless Application Model plantillas para implementar los recursos de Amazon EventBridge
Puedes crear y probar reglas manualmente en la EventBridge consola, lo que puede ayudarte en el proceso de desarrollo a medida que refinas los patrones de eventos. Sin embargo, una vez que esté preparado para implementar su aplicación, será más fácil utilizar un marco como AWS SAM para lanzar todos los recursos sin servidor de forma coherente.
Usaremos esta aplicación de ejemplo
Para ver esta aplicación de ejemplo, consulte Tutorial: Creación de una aplicación de muestra de Amazon EventBridge.
Hay dos enfoques para usar las plantillas. EventBridge AWS SAM Para integraciones sencillas en las que una sola regla invoca una función de Lambda, se recomienda el método de Plantilla combinada. Si tienes una lógica de enrutamiento compleja o te estás conectando a recursos fuera de tu AWS SAM plantilla, el enfoque de plantillas separadas es la mejor opción.
Plantilla combinada
El primer enfoque usa la Events propiedad para configurar la EventBridge regla. El siguiente código de ejemplo define un evento que invoca la función de Lambda.
nota
Este ejemplo crea automáticamente la regla en el bus de eventos predeterminado, que existe en todas las AWS cuentas. Para asociar la regla a un bus de eventos personalizado, puede el EventBusName a la plantilla.
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"
Este código YAML equivale a un patrón de eventos de la EventBridge consola. En YAML, solo necesitas definir el patrón de eventos y crear AWS SAM automáticamente un rol de IAM con los permisos necesarios.
Plantilla separada
En el segundo enfoque para definir una EventBridge configuración AWS SAM, los recursos se separan más claramente en la plantilla.
-
En primer lugar, defina la función de Lambda:
atmConsumerCase1Fn: Type: AWS::Serverless::Function Properties: CodeUri: atmConsumer/ Handler: handler.case1Handler Runtime: nodejs12.x -
A continuación, defina la regla mediante un recurso de
AWS::Events::Rule. Las propiedades definen el patrón de eventos y también pueden especificar destinos. Puede definir varios destino de forma explícita.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 último, defina un
AWS::Lambda::Permissionrecurso que conceda permiso EventBridge para invocar el objetivo.PermissionForEventsToInvokeLambda: Type: AWS::Lambda::Permission Properties: FunctionName: Ref: "atmConsumerCase1Fn" Action: "lambda:InvokeFunction" Principal: "events.amazonaws.com" SourceArn: Fn::GetAtt: - "EventRuleCase1" - "Arn"