簡體   English   中英

錯誤 aws_cloudwatch_log_subscription_filter 到 AWS Lambda 和 Terraform

[英]ERROR aws_cloudwatch_log_subscription_filter to AWS Lambda with Terraform

我正在嘗試使用 Terraform 將 CloudWatchLogs 日志組訂閱到 AWS Lambda,但它給了我一個錯誤。

我的代碼是:

resource "aws_cloudwatch_log_subscription_filter" "test_lambdafunction_logfilter" {
  name            = "test_lambdafunction_logfilter"
  role_arn        = "arn:aws:iam::XXXXXXXXXXXX:role/dx-dev-rol-datadog-log-forwarder-function"
  log_group_name  = "dx-dev-lg-destination-content-full"
  filter_pattern  = "logtype test"
  destination_arn = "arn:aws:iam::XXXXXXXXXXXX:lambda/dx-dev-lmbd-datadog-log-forwarder-function-01"
  distribution    = "Random"
}

錯誤:創建 Cloudwatch 日志訂閱過濾器時出錯:
InvalidParameterException:PutSubscriptionFilter 操作無法與供應商 iam 的 destinationArn 一起使用
狀態碼:400,請求ID:19836154-97e4-48f0-89b5-692f44ab1764

Terraform 文檔指出,role_arn 和分布參數只能與 Kinesis stream 目標一起使用。 錯誤消息只是說明了當目標為 Lambda 時您不能使用 IAM 角色參數這一事實。

EF role_arn -(可選)如果您使用Lambda作為目標,則應跳過此參數並使用 aws_lambda_permission 資源來授予從 CloudWatch 日志到目標 Lambda ZC1C425268E68385D1AB5074C17ZA9 的訪問權限。

分發- (可選)僅當目標是 Amazon Kinesis stream 時,此屬性才適用。

最后插入和刪除 role_arn 參數已經奏效:

resource "aws_cloudwatch_log_subscription_filter" "dx-dev-lg-destination-content-full" {
  name            = "dx-dev-lg-destination-content-full"
  #role_arn        = "arn:aws:iam:eu-central-1:442793498433:role/dx-dev-rol-datadog-log-forwarder-function"
  log_group_name  = "dx-dev-lg-destination-content-full"
  filter_pattern  = ""
  destination_arn = "arn:aws:lambda:eu-central-1:442793498433:function:dx-dev-lmbd-datadog-log-forwarder-function-01"
}

暫無
暫無

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

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