Google-Cloud-Platform

GAE 標準的“Report-To”HTTP 標頭實現

  • August 9, 2019

我正在嘗試向我們的 App Engine 的 app.yaml 配置文件添加一個“Report-To:”HTTP 標頭,以便與https://report-uri.com集成(基於此處此處此處的 Reporting 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 不支持標頭還是我們的語法錯誤?讓我知道是否需要採取任何其他步驟。

必須引用帶有特殊字元的 YAML 字元串。將字元串用單引號括起來,這應該可以解決所有問題。

引用自:https://serverfault.com/questions/978541