【发布时间】:2021-08-06 15:23:26
【问题描述】:
使用 .Net AWSSDK.EventBridge 我创建了一个规则:
var client = new AmazonEventBridgeClient();
string ruleName = "SomeRule";
var putRuleRequest = new Amazon.EventBridge.Model.PutRuleRequest()
{
Name = ruleName,
ScheduleExpression = "rate(10 minutes)",
State = RuleState.ENABLED
}
await client.PutRuleAsync(putRuleRequest);
var target = new Amazon.EventBridge.Model.Target();
target.Arn = "ARN_LAMBDA_FUNCTION";
target.Id = "LAMBDA_FUNCTION_NAME";
target.Input = JsonSerializer.Serialize(new { someId, someDate});
var targetList = new List<Amazon.EventBridge.Model.Target>();
targetList.Add(target);
var putTargetRequest = new Amazon.EventBridge.Model.PutTargetsRequest()
{
Rule = ruleName,
Targets = targetList
};
await client.PutTargetsAsync(putTargetRequest);
Lambda 函数已创建,因此我将 ARN 和名称放在目标上。这个想法是只有一个函数,但多个规则会调用它。
函数的规则、计划和目标是在我运行代码时创建的,但问题是函数不能被规则触发。当我编辑规则时,在 AWS 控制台中更新它,而不更改触发器的工作原理。
我错过了什么?
【问题讨论】:
标签: c# aws-lambda amazon-cloudwatch aws-event-bridge