Я отправляю сообщения в SQS, который должен отправлять их в мост событий, который будет запускать лямбду.
Я вижу сообщения, полученные в SQS, но почему-то не отправляет их в Eventbridge.
Это моя бессерверная конфигурация
service: mysendemail
projectDir: ../
frameworkVersion: "3"
package:
individually: true
plugins:
- serverless-offline
provider:
name: aws
runtime: nodejs16.x
region: eu-west-1
timeout: 30
stage: ${opt:stage, 'dev'}
environment:
STAGE: "dev"
QUEUE_URL: https://sqs.${aws:region}.amazonaws.com/${aws:accountId}/my-sqs-message-dev
iamRoleStatements:
Action:
- sqs:SendMessage
Resource:
!GetAtt MySQSMessageQueue.Arn
functions:
pushMessage:
handler: ./src/index.pushMessage
events:
- http:
path: message/push
method: post
cors: true
sendEmail:
handler: ./src/index.sendEmail
events:
- eventBridge:
pattern:
source:
- 'aws.sqs'
resources:
- !GetAtt MySQSMessageQueue.Arn
resources:
Resources:
#SQS Queue
MySQSMessageQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: my-sqs-message-dev
Есть ли что-то, что я упускаю?
SQS не является источником для EventBridge. Кроме того, EventBridge работает не с содержимым сообщений, а с событиями управления.
Вы можете найти список источников для EventBridge: https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html
Прочтите это: docs.aws.amazon.com/lambda/latest/dg/with-sqs.html EventBridge не участвует в интеграции AWS Lambda SQS.