Lambda事件无法触发EventBridge目标

0

【以下的问题经过翻译处理】 我正在使用Amazon Selling Partner API(SP-API)尝试设置类似于Pub/Sub的系统,以接收客户订单等通知。 SP-API中的Notifications API根据所使用的事件类型以2种不同的方式发送不同类型的通知。有些直接发送到EventBridge,有些则发送到SQS。https://developer-docs.amazon.com/sp-api/docs/notifications-api-v1-use-case-guide#section-notification-workflows

我已经正确设置了直接发送到EventBridge的通知,但是在处理SQS通知方面遇到了困难。我希望所有通知都发送到自己的端点。

对于SQS模型,我在SQS中接收通知,将其设置为Lambda函数的触发器(此部分有效)。此函数的目标设置为另一个EventBridge(这是不起作用的部分)。这给出的架构是: SQS => Lambda => EventBridge => 我的端点

为什么Lambda无法触发我的EventBridge目标以发送通知呢?

执行角色策略: Lambda 1. AWSLambdaBasicExecutionRole 2. AmazonSQSFullAccess 3. AmazonEventBridgeFullAccess 4. AWSLambda_FullAccess EventBridge 1. Amazon_EventBridge_Invoke_Api_Destination 2. AmazonEventBridgeFullAccess 3. AWSLambda_FullAccess

EventBridge事件模式: {"source": ["aws.lambda"]}

执行角色可信实体: EventBridge角色 "Service": ["events.amazonaws.com", "lambda.amazonaws.com", "sqs.amazonaws.com"] Lambda角色 "Service": ["lambda.amazonaws.com", "events.amazonaws.com", "sqs.amazonaws.com"]

Lambda代码:

exports.handler = function(event, context, callback) {
   console.log("Received event: ", event);
   context.callbackWaitForEmptyEventLoop = false;
   callback(null, event);
   return {
      statusCode: 200
   };
}
profile picture
EXPERTE
gefragt vor 2 Jahren65 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 如果您使用Lambda Destination来触发EventBridge,那么这不会起作用。原因是Lambda Destinations仅适用于异步调用。在SQS -> Lambda的情况下,它是个事件源映射调用,底层使用的是同步调用。

如果您需要向EventBridge发送事件,请直接从Lambda代码发送。

profile picture
EXPERTE
beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen