google-cloud-platform - 如何在 Google Workflows 中与 http.call (get) 中收到的 token 进行比较

标签 google-cloud-platform yaml google-workflows

我有一个简单的云函数,它可以响应以下任一内容:

{"pasValidate":true} 或者 {"pasValidate":false}

我需要 Cloud Workflows 正确比较 truefalse 以采取正确的路线。我尝试过引号,没有引号,文档中的唯一部分是必须通过响应的“正文”部分引用变量,然后使用它(实际上,文档中没有其他内容),所以这就是我所做的:

- getData:
        call: http.get
        args:
            url: https://us-central1-ACCOUNT.cloudfunctions.net/Cloud_Function
        result: jsonResponse
  - evaluateRes:
        switch:
         - condition: $(jsonResponse.body.pasValidate == "true")
           next: logStep1
         - condition: $(jsonResponse.body.pasValidate == "false")
           assign:
            - failLvl: "step1"
           next: endFail

完成所有这些之后,我得到了以下失败运行响应:

in step "evaluateRes": {"message":"TypeError: in conditional predicate: expected boolean, got str","tags":["TypeError"]}

我知道它得到的是一个字符串而不是所需的 True/False,但在这一点上,我敢于向社区询问我缺少什么。也许有一些更简单的东西我没有注意到。

来源:

最佳答案

首先,确保函数的响应是 application/json。您可以通过将响应 header 设置为 application/json 来实现此目的。例如:

res.setHeader("Content-Type", "application/json");

如果不这样做,您可能会遇到解析问题,如下所示:

When a response of type application/json is stored in a variable, the JSON response is converted to a dictionary you access as a response body. Workflows includes a built-in parser for accessing this data.

接下来,在使用 switch block 时,使用大括号 {} 而不是括号 ()。还要删除 bool 值上的双引号。

switch:
    - condition: ${jsonResponse.body.pasValidate == true}
      next: logStep1
    - condition: ${jsonResponse.body.pasValidate == false}
      assign:
      - failLvl: "step1"
      next: endFail

关于google-cloud-platform - 如何在 Google Workflows 中与 http.call (get) 中收到的 token 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66110034/

相关文章:

yaml - 使用ansible编辑多个目标文件?

google-cloud-run - 如何使用 Google Workflow 检索 Cloud Run 服务的 URL?

json - 如何从 Cloud Workflows 实例返回特定项目?

java - 使用 BigQuery 遇到问题

postgresql - 无法使用 docker-compose 为 Postgres 设置密码

java - 从 yaml Autowiring springboot 中的 json 值

yaml - Google Workflows 上的多行字符串插值

go - 将app.yaml从go114更新到go115时如何处理 `app_engine_apis`警告

java - 我们如何使用 Google Cloud Java API 执行数据存储不平等和 "IN"过滤器?

google-apps-script - G Suite 市场 : At least one extension must be enabled and selected extensions must be configured