在我的Lambda CDK堆栈中,我想设置一个事件规则,以便每10分钟向我的Lambda发送一个事件。
这将工作并以lambda为目标部署规则
// ... setup lambdaFunction construct...
// -- EVENTBRIDGE RULES --
const meetingSyncEvent = {
path: "/v1/meeting/sync",
httpMethod: "GET"
};
const eventTarget = new awsEventTarget.LambdaFunction(lambdaFunction, {
event: awsEvents.RuleTargetInput.fromObject(meetingSyncEvent)
});
/**
TODO how do I add target to ARN with alias/version
* */
const eventRule = new awsEvents.Rule(this, generateConstructName("event-rule"), {
enabled: true,
description: "event to invoke GET /meeting/sync",
ruleName: "meeting-sync-rule",
targets : [
eventTarget
],
schedule: awsEvents.Schedule.rate(EVENT_MEETING_SYNC_RATE)
});
// -- end EVENTBRIDGE RULES --
问题是这只针对没有别名或版本的基本ARN(实际上总是指向$Latest)。AWS控制台中有此选项可用于为目标设置别名或版本(下图),如何在CDK中执行此操作?
AWS控制台UI允许别名和版本的目标arn具有别名时配置通过UI
我发现了:事件规则采用类型IFunction,由于Ilias和IVersion都扩展了IFunction,因此我们可以使用为函数创建的别名,并将别名作为函数参数(AWS区分函数、别名函数和版本函数)
const lambdaAlias = lambdaFunction.latestVersion
.addAlias(ENVIRONMENT_UPPERCASE)
const eventTarget = new awsEventsTargets.LambdaFunction(lambdaAlias, {
event: awsEvents.RuleTargetInput.fromObject(meetingSyncEvent)
});
const eventRule = new awsEvents.Rule(this, "event-rule", {
enabled: true,
description: `event to invoke GET /meeting/sync for ${FUNCTION_NAME}`,
ruleName: `${FUNCTION_NAME}-invoke-meetingsync`,
targets: [
eventTarget
],
schedule: awsEvents.Schedule.rate(EVENT_MEETING_SYNC_RATE)
});
我有一个现有的Lambda函数。 我可以使用控制台创建一个以Lambda为目标的新规则。 当我通过控制台这样做时,它会自动创建一个“EventBridge(CloudWatch Events)”触发器,该触发器在Lambda配置屏幕上可见。 规则执行并成功调用Lambda。 尝试使用C#和SDK(nuget包:AWSSDK. EventBridge)自动执行上述步骤,我采取以下步骤: 我成功调用P
我想创建一个以lambda函数为目标的AWS eventbridge规则。名为“StartInstance”的lambda函数已通过控制台创建。 我创建了一个python脚本,它使用boto3库来创建这个eventbridge规则。我将向该规则传递一个cron表达式,该表达式将在特定日期和时间调用lambda函数。 下面是成功运行的python脚本代码: 如您所见,传递给规则的cron表达式是:,
我正在尝试创建一个以Lambda函数为目标的AWS Eventbridge规则。我可以添加规则和目标,但当我尝试通过RoleArn设置lambda权限时,Cloudformation堆栈部署失败,目标arn不支持RoleArn:aws:lambda:us-east-1:1234567890:功能:联系lambda消费新客户。(服务:AmazonCloudWatchEvents;状态代码:400;错
我使用Java lambda函数将自定义事件放入AWS EventBridge。此eventbridge的目标是另一个Java lambda函数。如何在目标lambda函数中接收事件?我的意思是我必须使用HandlerRequest方法中的输入类型是什么?尝试使用ScheduledEvent作为输入类型,但没有成功。搜索了许多EventBridge API文档,但没有获得如何从EventBridg
如何使用CloudFormation或CDK将另一个AWS帐户的事件总线指定为CloudWatch规则的目标? 下面是一个使用CDK的示例规则,我尝试将CodeDeploy事件发送到另一个帐户: 如何将另一个帐户的EventBus指定为目标?语法是什么?是ARN还是什么?
我正在尝试创建一个EventBridge(CloudWatch Events)规则,并将该规则添加为现有Lambda函数的触发器。 代码使用Lambda目标正确创建EventBridge,但它不会将触发器添加到实际的Lambda中。我必须通过AWS Web控制台手动将EventBridge添加到Lambda。 似乎仅仅将Lambda添加为事件规则的目标是不够的。如何将事件规则作为触发器添加到Lam