【发布时间】:2021-10-16 06:15:24
【问题描述】:
我正在尝试使用 terraform 在 gcp 上实现以下目标。
- 云函数侦听添加到发布/订阅主题的消息
- 添加消息后,将触发云功能
- 如果处理消息时出现错误,则将消息放入相应的死信队列。
我不确定如何为还包含死信策略的云功能创建订阅。目前我正在为云功能做以下事情,
resource "google_cloudfunctions_function" "brw-user-function-item-registered" {
// details
event_trigger {
event_type = "google.pubsub.topic.publish"
resource = "brw-messages"
failure_policy {
retry = false
}
}
// details
}
但是,没有选项可以在 event_trigger 部分中指定死信策略。如果我创建一个单独的 google_pubsub_subscription 我不确定如何将端点提供给云功能。我查看了创建的内容及其实际上的端点,但是我不确定如何在 google_pubsub_subscription
【问题讨论】:
-
即使您可以使用
terraform import,导入由您的云功能自动创建的google_pubsub_subscription,然后为其分配一个具有相同push_config.push_endpoint的dead_letter_policy,死信策略将有没有效果,因为您的 Cloud Function 将在收到 pubsub 消息后立即确认它,即使它崩溃。所以 HTTP 云功能是更好的选择。否则,您会在代码中发现任何错误并以编程方式在死信主题中发布消息:) -
如果我使用HTTP Cloud函数,那么如果函数崩溃,消息会被放入死信主题吗?
标签: google-cloud-platform terraform google-cloud-pubsub