监听 Pub/Sub 通知

参考架构示例

使用预算提醒程序化通知自动执行费用控制响应的示例图。
图 1:此示例展示了如何使用预算提醒,通过用于程序化通知的 Pub/Sub 和用于自动响应的 Cloud Run 函数来自动执行费用控制响应。

本文档介绍了如何通过订阅 Cloud Run 函数触发器来监听程序化预算通知。如果没有订阅者,Pub/Sub 会丢弃已发布的消息,您以后将无法再检索到它们。在本文档中,您将学习如何完成以下任务:

  1. 创建一个监听通知的 Cloud Run 函数。
  2. 查看 Cloud Run 函数事件。
  3. 测试 Cloud Run 函数。

准备工作

在开始之前,您必须完成以下任务:

  1. 创建预算
  2. 设置程序化通知

创建 Cloud Run 函数

如需创建 Cloud Run 函数,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 Cloud Run 函数页面。

    前往 Cloud Run functions

  2. 点击创建服务

  3. 选择使用内嵌编辑器创建函数

  4. 输入一个对您的预算通知有意义的服务名称

  5. 选择 Cloud Run 函数将在其中运行的区域。部署函数后,您无法修改此设置。

  6. 点击添加触发器,然后选择 Cloud Pub/Sub

  7. 如果系统提示,请启用所有必需的 API。

  8. Eventarc 触发器面板中,完成以下步骤:

    1. 输入触发器名称
    2. 触发器类型设置为 Google 来源
    3. 事件提供方设置为 Cloud Pub/Sub
    4. 选择您在预算中配置的 Cloud Pub/Sub 主题
    5. 选择区域
    6. 点击保存触发器
  9. 根据需要修改 Identity-Aware Proxy结算服务伸缩入站流量容器、卷、网络、安全性设置,然后点击创建

  10. 使用内嵌编辑器编写代码,或上传一个文件,告知函数如何处理通知。

    如需查看代码示例,请参阅以下示例:

    如需详细了解您的代码将收到的通知,请参阅通知格式

  11. 函数入口点设置为要执行的正确函数:

  12. 点击部署

查看 Cloud Run 函数事件

部署 Cloud Run 函数后,点击日志即可查看函数调用的日志。

测试 Cloud Run 函数

系统会向 Pub/Sub 发送通知,订阅者则会收到这些消息。如需测试示例通知并确保函数按预期正常运行,请使用以下对象作为消息正文在 Pub/Sub 中发布消息

{
    "budgetDisplayName": "name-of-budget",
    "alertThresholdExceeded": 1.0,
    "costAmount": 100.01,
    "costIntervalStart": "2019-01-01T00:00:00Z",
    "budgetAmount": 100.00,
    "budgetAmountType": "SPECIFIED_AMOUNT",
    "currencyCode": "USD"
}

您还可以添加结算账号 ID 等消息属性。如需了解详情,请参阅通知格式

后续步骤

如需详细了解如何使用程序化通知,请查看以下程序化费用控制响应示例: