自訂標頭 - AWS Amplify 託管

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

自訂標頭

自訂 HTTP 標頭可讓您指定每個 HTTP 回應的標頭。回應標頭可用在偵錯、安全和資訊方面。您可以在 Amplify 控制台中指定標題,或者下載和編輯應用程式的customHttp.yml檔案並將其儲存在專案的根目錄中。如需詳細程序,請參閱設置自定義標題

先前,透過編輯中的組建規格 (buildspec), AWS Management Console 或下載並更新檔案並將其儲存在專amplify.yml案的根目錄中,為應用程式指定自訂 HTTP 標頭。以這種方式指定的自定義標題應該從 buildspec 和文件中遷移出來。amplify.yml如需說明,請參閱移轉自訂標頭

自定義標題 YAML 格式

使用下列 YAML 格式指定自訂標頭:

customHeaders: - pattern: '*.json' headers: - key: 'custom-header-name-1' value: 'custom-header-value-1' - key: 'custom-header-name-2' value: 'custom-header-value-2' - pattern: '/path/*' headers: - key: 'custom-header-name-1' value: 'custom-header-value-2'

對於單一儲存庫,請使用以下 YAML 格式:

applications: - appRoot: app1 customHeaders: - pattern: '**/*' headers: - key: 'custom-header-name-1' value: 'custom-header-value-1' - appRoot: app2 customHeaders: - pattern: '/path/*.json' headers: - key: 'custom-header-name-2' value: 'custom-header-value-2'

將自定義標題添加到應用程序時,您將為以下內容指定自己的值:

pattern

自訂標頭會套用至符合該模式的所有 URL 檔案路徑。

標頭

定義與檔案模式相符的標頭。

金錀

自訂標頭的名稱。

value

自訂標頭的值。

若要進一步了解 HTTP 標頭,請參閱 Mozilla 的 HTTP 標頭清單。

設置自定義標題

有兩種方法可以為 Amplify 應用程式指定自訂 HTTP 標頭。您可以在 Amplify 控制台中指定標題,也可以通過下載和編輯應用程序的customHttp.yml文件並將其保存在項目的根目錄中來指定標題。

設定應用程式的自訂標頭並將其儲存在主控台
  1. 登入 AWS Management Console 並開啟 Amplify 大控制台

  2. 選擇要為其設置自定義標題的應用程序。

  3. 在導覽窗格中,選擇「主機」,然後選擇「自訂標題」。

  4. 在 [自訂標題] 頁面上,選擇 [編輯]。

  5. [編輯自訂標頭] 視窗中,使用自訂標頭 YAML 格式輸入自訂標頭的資訊。

    1. 對於pattern,輸入要符合的樣式。

    2. 在中key,輸入自訂標頭的名稱。

    3. 在中value,輸入自訂標頭的值。

  6. 選擇儲存

  7. 重新部署應用程式以套用新的自訂標頭。

    • 對於 CI/CD 應用程式,請瀏覽至要部署的分支,然後選擇「重新部署此版本」。您也可以從 Git 儲存庫執行新的組建。

    • 對於手動部署應用程式,請在 Amplify 主控台中再次部署應用程式。

若要為應用程式設定自訂標頭並將其儲存在儲存庫的根目錄中
  1. 登入 AWS Management Console 並開啟 Amplify 大控制台

  2. 選擇要為其設置自定義標題的應用程序。

  3. 在導覽窗格中,選擇「主機」,然後選擇「自訂標題」。

  4. 在 [自訂標題] 頁面上,選擇 [下載 YML]。

  5. 在您選擇的代碼編輯器中打開下載的customHttp.yml文件,然後使用自定義標題 YAML 格式輸入自定義標題的信息。

    1. 對於pattern,輸入要符合的樣式。

    2. 在中key,輸入自訂標頭的名稱。

    3. 在中value,輸入自訂標頭的值。

  6. 將編輯過的customHttp.yml檔案儲存在專案的根目錄中。如果您正在使用 monorepo,請將customHttp.yml文件保存在回購的根目錄中。

  7. 重新部署應用程式以套用新的自訂標頭。

    • 如果是 CI/CD 應用程式,請從包含新檔案的 Git 儲存庫執行新customHttp.yml組建。

    • 對於手動部署應用程式,請在 Amplify 主控台中再次部署應用程式,並將新customHttp.yml檔案與您上傳的成品一起包含在內。

注意

customHttp.yml檔案中設定並部署在應用程式根目錄中的自訂標頭會覆寫在 Amplify 主控台中「自訂標題」區段中定義的自訂標頭。

移轉自訂標頭

以前,通過在 Amplify 控制台中編輯 buildspec,或者通過下載和更新amplify.yml文件並將其保存在項目的根目錄中來為應用程序指定自定義 HTTP 標頭。強烈建議您將自訂標頭移轉出組建規格和檔案amplify.yml

在 Amplify 主控台的 [自訂標題] 區段中指定自訂標題,或透過下載和編輯customHttp.yml檔案來指定您的自訂標題。

移轉儲存在 Amplify 主控台中的自訂標頭
  1. 登入 AWS Management Console 並開啟 Amplify 大控制台

  2. 選擇要在其上執行自定義標題遷移的應用程序。

  3. 在導航窗格中,選擇託管構建設置。在「應用程序構建規範」部分中,您可以查看應用程序的構建規格。

  4. 選擇「下載」以儲存目前組建規格的副本。如果您稍後需要復原任何設定,可以參考此複本。

  5. 下載完成時,選擇 [編輯]。

  6. 請記下檔案中的自訂標頭資訊,因為您稍後會在步驟 9 中使用它。在 「編輯」視窗中,刪除檔案中的任何自訂標題,然後選擇「儲存」。

  7. 在導覽窗格中,選擇 [主機]、[自訂標題]。

  8. 在 [自訂標題] 頁面上,選擇 [編輯]。

  9. 「編輯自訂標題」視窗中,輸入您在步驟 6 中刪除的自訂標頭資訊。

  10. 選擇儲存

  11. 重新部署您想要套用新自訂標頭的任何分支。

若要將自訂標頭從放大的 .yml 移轉至自訂 Http.yML
  1. 導航到應用程序根目錄中當前部署的amplify.yml文件。

  2. amplify.yml在您選擇的程式碼編輯器中開啟。

  3. 請記下檔案中的自訂標頭資訊,因為您稍後會在步驟 8 中使用它。刪除檔案中的自訂標頭。儲存並關閉檔案。

  4. 登入 AWS Management Console 並開啟 Amplify 大控制台

  5. 選擇要為其設置自定義標題的應用程序。

  6. 在導覽窗格中,選擇 [主機]、[自訂標題]。

  7. 在 [自訂標題] 頁面上,選擇 [下載]。

  8. 在您選擇的代碼編輯器中打開下載的customHttp.yml文件,然後輸入您amplify.yml在步驟 3 中刪除的自定義標題的信息。

  9. 將編輯過的customHttp.yml檔案儲存在專案的根目錄中。如果您正在使用 monorepo,請將文件保存在回購的根目錄中。

  10. 重新部署應用程式以套用新的自訂標頭。

    • 如果是 CI/CD 應用程式,請從包含新檔案的 Git 儲存庫執行新customHttp.yml組建。

    • 對於手動部署應用程式,請在 Amplify 主控台中再次部署應用程式,並包含您上傳的成品的新customHttp.yml檔案。

注意

customHttp.yml檔案中設定並部署在應用程式根目錄中的自訂標頭會覆寫 Amplify 主控台的「自訂標頭」區段中定義的自訂標頭。

自定義頁眉

當您在 monorepo 中為應用程序指定自定義標題時,請注意以下設置要求:

  • 有一個特定的 YAML 格式為一個單一的。如需正確的語法,請參閱自定義標題 YAML 格式

  • 您可以使用 Amplify 控制台的自定義標題部分為 monorepo 中的應用程序指定自定義標題。您必須重新部署應用程式才能套用新的自訂標頭。

  • 作為使用控制台的替代方法,您可以在customHttp.yml文件中的 monorepo 中為應用程序指定自定義標題。您必須將customHttp.yml檔案儲存在軟體庫的根目錄中,然後重新部署應用程式以套用新的自訂標頭。在customHttp.yml檔案中指定的自訂標頭會覆寫使用 Amplify 主控台的「自訂標頭」區段指定的任何自訂標頭。

安全標頭示例

自訂安全標頭可讓您強制執行 HTTPS、防止 XSS 攻擊,以及防禦您的瀏覽器免於點擊劫持。使用下列 YAML 語法將自訂安全性標頭套用至您的應用程式。

customHeaders: - pattern: '**' headers: - key: 'Strict-Transport-Security' value: 'max-age=31536000; includeSubDomains' - key: 'X-Frame-Options' value: 'SAMEORIGIN' - key: 'X-XSS-Protection' value: '1; mode=block' - key: 'X-Content-Type-Options' value: 'nosniff' - key: 'Content-Security-Policy' value: "default-src 'self'"

自定義緩存控制頭

以 Amplify 代管的應用程式會遵循來源傳送的Cache-Control標頭,除非您使用您定義的自訂標頭覆寫這些標頭。Amplify 只會針對使用狀態碼的成功回應套用快取控制自訂標頭。200 OK這樣可防止快取錯誤回應,並提供給提出相同要求的其他使用者。

您可以手動調整指s-maxage令,以更好地控制應用程式的效能和部署可用性。例如,若要增加內容在邊緣快取的時間長度,您可以將存留時間 (TTL) 更新s-maxage為超過預設 600 秒 (10 分鐘) 的值,以手動方式增加存留時間 (TTL)。

若要指定的自訂值s-maxage,請使用下列 YAML 格式。此範例會將相關聯的內容保留在邊緣快取 3600 秒 (一小時)。

customHeaders: - pattern: '/img/*' headers: - key: 'Cache-Control' value: 's-maxage=3600'

如需使用標頭控制應用程式效能的詳細資訊,請參閱使用標頭控制快取持續時間