簡體   English   中英

帶有事件模式的 Terraform AWS Cloudwatch 規則未正確更新

[英]Terraform AWS Cloudwatch Rule with Event Pattern incorrectly updated

我正在嘗試配置會觸發 sns 主題的 cloudwatch 事件規則。 我一直面臨着從 cloutwatch 規則觸發 sns 主題以及從 terraform 創建的事件模式的問題。 下面是我的地形代碼:

resource "aws_cloudwatch_event_rule" "s3-event" {
  name        = "s3-event"
  description = "Capture each AWS s3 event"

  event_pattern = <<EOF
{
  "source": ["aws.s3"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["CreateBucket"]
  }
}
EOF
}

在 aws ui 上應用檢查的事件模式后,它看起來像:

Event pattern
{
  "detail": {
    "eventName": ["CreateBucket"],
    "eventSource": ["s3.amazonaws.com"]
  },
  "detail-type": ["AWS API Call via CloudTrail"],
  "source": ["aws.s3"]
}

IT 在創建 s3 存儲桶時出現調用失敗錯誤。 然后我從 aws 控制台重新保存為:

{
  "source": ["aws.s3"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["CreateBucket"]
  }
}

然后它通過了。

有人可以建議我如何禁用 terraform 以重新排列事件模式。

默認情況下,當我從 terraform 創建 cloudwatch 事件時,重新排列模式不是解決方案,它不會為 sns 創建訪問策略,但在從 AWS 控制台訪問策略編輯模式后,正在創建,因此我們必須定義像下面這樣的 terraform 訪問策略並附加到 sns 主題:

statement {
    effect  = "Allow"
    actions = ["SNS:Publish"]

    principals {
      type        = "Service"
      identifiers = ["events.amazonaws.com"]
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM