将日志发送到 Cloud Logging

工作流不会自动为 Cloud Logging 中的工作流执行生成日志。您可以改为控制在工作流执行期间将日志发送到 Logging 的时间。您选择发送到 Logging 的日志称为“自定义日志”。 这些日志在调试工作流时特别有用。

日志记录所需的权限

如需将自定义日志发送到 Logging,工作流必须与包含 logging.logEntries.create 权限的服务帐号相关联(例如 roles/logging.logWriter 角色)。如果您需要更改使用您的工作流更新的服务帐号,请参阅更新工作流。如需详细了解如何创建服务帐号并分配角色,请参阅管理对项目、文件夹和组织的访问权限

在执行期间创建日志条目

在执行工作流期间,您可以通过两种方式创建日志条目。您可以应用调用日志记录功能,也可以使用 sys.log 函数

应用调用日志记录

您可以设置标志,以便记录工作流执行期间的每个调用步骤,以及返回步骤名称、函数名称、函数参数和调用响应。或者,您可以记录停止调用的任何异常。

系统只会记录明确的调用步骤;例如,对子工作流或库函数的调用。系统不会记录在表达式或标准库函数(例如,sys.log 中的 http.post)内以及连接器内的调用。

您可以使用 Google Cloud Console 或 gcloud 命令行工具来应用调用日志记录。

控制台

  1. 转到 Google Cloud Console 中的“工作流”页面:
    转到“Workflows”

  2. 在 Workflows 页面上,选择一个工作流以转到其详情页面。

  3. 工作流详细信息页面上,选择 执行

  4. (可选)在执行工作流页面上,您可以指定要在工作流执行期间应用的调用日志记录级别。

    记录调用下拉列表中,选择以下选项之一:

    • none:无调用日志记录。这是默认级别。
    • log-all-calls:记录对子工作流或库函数及其调用的所有调用。
    • log-errors-only:仅在调用因异常而停止时记录。
  5. 点击执行

gcloud

如需执行工作流并等待执行完成,请输入以下命令:

gcloud workflows run WORKFLOW_NAME \
    --call-log-level=CALL_LOGGING_LEVEL \
    --data=DATA

如需执行工作流而不等待执行尝试完成,请输入以下命令:

gcloud workflows execute WORKFLOW_NAME \
    --call-log-level=CALL_LOGGING_LEVEL \
    --data=DATA

替换以下内容:

  • WORKFLOW_NAME:工作流的名称。
  • CALL_LOGGING_LEVEL:可选。在执行期间应用的调用日志记录级别。可以是以下之一:
    • none:无调用日志记录。这是默认级别。
    • log-all-calls:记录对子工作流或库函数及其调用的所有调用。
    • log-errors-only:仅在调用因异常而停止时记录。
  • DATA:可选。您的工作流的运行时参数,其采用 JSON 格式。

使用 sys.log 函数

如需在工作流执行期间在 Logging 中创建日志条目,请在工作流中定义调用 sys.log 函数的步骤:

YAML

  - step1:
      assign:
          - varA: "Hello"
          - varB: "World"
  - logStep:
      call: sys.log
      args:
          text: TEXT
          severity: SEVERITY 
  - step2:
      return: ${varA + " " + varB}
    

JSON

    [
      {
        "step1": {
          "assign": [
            {
              "varA": "Hello"
            },
            {
              "varB": "World"
            }
          ]
        }
      },
      {
        "logStep": {
          "call": "sys.log",
          "args": {
            "text": "TEXT",
            "severity": "SEVERITY"
          }
        }
      },
      {
        "step2": {
          "return": "${varA + " " + varB}"
        }
      }
    ]
      

创建日志条目时,请定义以下内容:

  • TEXT:必填。要记录的文本。如果需要记录映射的值,请使用 ${json.encode_to_string(myMap)}
  • SEVERITY:可选。日志条目的严重级别。例如 INFOWARNINGCRITICAL

如需了解详情,请参阅 sys.log函数参考

查看自定义工作流日志

您可以在工作流或 Logging 中查看自定义日志。如需查看单个工作流的自定义日志,请使用工作流中的日志标签页。如需获取所有工作流的自定义日志的汇总视图,请使用 Logging 中的日志浏览器页面。

在 Workflows 中查看日志

如需在工作流中查看工作流的自定义日志,请执行以下操作:

  1. 转到 Cloud Console 中的 Workflows 页面:
    转到“Workflows”

  2. 如需访问工作流的自定义日志,请点击工作流的名称以转到其详情页面。

  3. 如需查看自定义日志,请点击日志

  4. 要按严重性过滤日志,请在默认列表中选择要显示的日志类型。默认情况下,系统会显示所有严重程度的日志。

工作流详情页面上的日志标签页会显示以下类型的日志:

  • 发送到 Logging 的自定义日志

  • 对工作流执行的任何操作(例如更新工作流定义)的审核日志

在 Logging 中查看日志

如需查看 Logging 中的自定义日志,请执行以下操作:

  1. 转到 Cloud Console 中的日志浏览器页面:
    转到日志浏览器

  2. 查询构建器中,点击资源并输入 workflow。从列表中选择 Cloud 工作流,然后点击添加

    工作流日志记录

  3. 点击运行查询

如需详细了解如何在 Logging 查看日志,请参阅使用日志浏览器

后续步骤