是的,这是正常的。aws-eventbridge-lambda是EventBridge服务的一种触发器类型,它用于将事件传递到非AWS Lambda目标(如HTTP端点或AWS SQS)。这意味着,aws-eventbridge-lambda不能自动创建Lambda函数,但它可以将事件发送到现有的Lambda函数。
以下是一个使用aws-eventbridge-lambda触发Lambda函数的Node.js示例代码:
const AWS = require('aws-sdk');
const eventBridge = new AWS.EventBridge();
exports.handler = async (event, context) => {
const params = {
Entries: [
{
Detail: JSON.stringify(event),
DetailType: 'myEventBus.eventType',
EventBusName: 'myEventBus',
Source: 'myEventSource',
},
],
};
try {
await eventBridge.putEvents(params).promise();
return { statusCode: 200, body: 'Events sent successfully' };
} catch (error) {
console.error(error);
return { statusCode: 500, body: 'Error sending events' };
}
};
在这个例子中,我们使用AWS SDK创建了一个EventBridge客户端,并使用putEvents方法将事件发送到特定的事件总线。在这里,我们可以将Lambda函数用作事件消费者。为了从EventBridge中接收事件,我们需要使用AWS Lambda触发器类型的“eventBridge”触发器。在Lambda函数的部署页面上,我们可以配置事件来源和事件总线的详细信息,以便Lambda函数可以接收事件。
请注意,事件总线和事件源的名称需要事先在您的AWS帐户中创建。在这个例子中,我们使用了一个名为“myEventBus”的事件总线和一个名为“myEventSource”的事件源。您可以在AWS Console中创建这些部件,也可以使用AWS CLI。
希望这可以帮助您开始使用EventBridge和Lambda函数!