我正在尝试将“Report-To:”HTTP 标头添加到我们的 App Engine 的 app.yaml 配置文件中,以便与https://report-uri.com(基于报告 API这里,这里, 和这里),但是当我将更改推送到存储库时,Cloud Build 失败并返回以下错误:
ERROR: (gcloud.app.deploy) An error occurred while parsing file: [/workspace/app.yaml]
in "/workspace/app.yaml", line 21, column 27
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/gcloud" failed: exit status 1
app.yaml 的第 21 行对应于新的标头:
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
secure: always
redirect_http_response_code: 301
http_headers:
Report-To: {"group":"default","max_age":31536000,"endpoints":[{"url":"https://*REDACTED*.report-uri.com/a/d/g"}],"include_subdomains":true}
我尝试了标题的不同迭代,包括以下内容:
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
secure: always
redirect_http_response_code: 301
http_headers:
Report-To: {"max_age":31536000, "url":"https://*REDACTED*.report-uri.com/a/d/g"}
这是部署时唯一会抛出错误的行项。如果删除,新版本将上线。是因为 App Engine 不支持该标头还是我们的语法有误?如果有任何其他步骤需要采取,请告诉我。
答案1
带有特殊字符的 YAML 字符串必须用引号引起来。将字符串括在单引号中,这样就可以解决所有问题。