schedult 上的 aws 自定义事件以触发 lambda 使用 Terraform

Posted

技术标签:

【中文标题】schedult 上的 aws 自定义事件以触发 lambda 使用 Terraform【英文标题】:aws custom event on schedult to trigger lambda Using Terraform 【发布时间】:2022-01-12 01:15:13 【问题描述】:

我想创建一个应按计划传递给 Lambda 的自定义事件 我能够创建一个预定的事件 但无法传递自定义事件详细信息:

所以我想要这样的东西

resource "aws_cloudwatch_event_rule" "roup1-rule" 
  name                = "Group1"
  description         = "Group1"
  schedule_expression = "rate(10 minutes)"
  is_enabled          = true
  event_pattern       = <<EOF

  "source": ["Group1"],
  "groupNumber":["Group1"],
  "notificationDate":["-"]

EOF

但我只得到这样的空事件

'version': '0', 'id': '8d41b334-297c-bc93-795d-54b7622a3da7', 'detail-type': 'Scheduled Event', 'source': 'aws.events', 'account': '215132885729', 'time': '2021-12-06T21:05:34Z', 'region': 'us-east-1', 'resources': ['arn:aws:events:us-east-1:215132885729:rule/gov-prov-srvcs-Demographic_Group1'], 'detail': 
'version': '0', 'id': '8d41b334-297c-bc93-795d-54b7622a3da7', 'detail-type': 'Scheduled Event', 'source': 'aws.events', 'account': '215132885729', 'time': '2021-12-06T21:05:34Z', 'region': 'us-east-1', 'resources': ['arn:aws:events:us-east-1:215132885729:rule/gov-prov-srvcs-Demographic_Group1'], 'detail': 

【问题讨论】:

【参考方案1】:

event_pattern 不与schedule_expression 一起使用。 event_pattern 仅用于过滤掉其他服务产生的事件。

您必须将event 添加到您的函数代码中。无论如何,它是一个常数值。

【讨论】:

我们不能传递一个常量 json 。我可以通过控制台执行此操作,以按计划发送常量 json。但在 TF 中无法做到这一点 资源 "aws_cloudwatch_event_target" "Group1-tgt" rule = aws_cloudwatch_event_rule.Group1-rule.name arn = aws_lambda_function.createtrigger.arn event_pattern = @devx 你必须使用input。

以上是关于schedult 上的 aws 自定义事件以触发 lambda 使用 Terraform的主要内容,如果未能解决你的问题,请参考以下文章

AWS 事件总线无法将日志写入来自 AWS Lambda 的自定义日志组上的 CloudWatch

iOS 上的 Phonegap 触发自定义事件

重力表单 - 添加自定义事件不通过Google跟踪代码管理器触发

AWS API Gateway 默认响应和触发 AWS Lambda

AWS Cognito lambda 触发两次

使用 Select2 而不是实际选择时不会触发 WooCommerce 事件