【以下的问题经过翻译处理】 我正在使用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
};
}