自訂標頭 - AWS Amplify 託管

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

自訂標頭

自訂 HTTP 標頭可讓您指定每個 HTTP 回應的標頭。回應標頭可用在偵錯、安全和資訊方面。您可以在中指定標題AWS Management Console,或透過下載和編輯應用程式的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 檔案路徑。

標頭

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

key

自訂標頭的名稱。

value

自訂標頭的值。

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

設置自定義標題

有兩種方法可以為AWS Amplify應用程序指定自定義 HTTP 標頭。您可以在中指定標題,AWS Management Console也可以透過下載和編輯應用程式的customHttp.yml檔案並將其儲存在專案的根目錄中來指定標題。

若要設定應用程式的自訂標題 AWS Management Console
  1. 登入AWS Management Console並開啟擴大控制台

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

  3. 在導覽窗格中,選擇 [應用程式設定] > [自訂標題]。

  4. 在「自訂頁首規格」區段中,選擇 「編輯」。

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

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

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

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

  6. 選擇 儲存

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

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

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

若要使用自訂 Httpp.yML 檔案設定自訂標頭
  1. 登入AWS Management Console並開啟擴大控制台

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

  3. 在導覽窗格中,選擇 [應用程式設定] > [自訂標題]。

  4. 在「自訂頁首規格」區段中,選擇「下載」。

  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檔案中設定並部署在應用程式根目錄中的自訂標頭將覆寫在AWS Management Console.

移轉自訂標頭

之前,自訂 HTTP 標頭是透過編輯中的 buildspec,AWS Management Console或下載和更新檔案並將其儲存在專amplify.yml案的根目錄中來指定應用程式。強烈建議您將自訂標頭移轉出組建規格和檔案amplify.yml

在的 [自訂標題] 區段中指定您的自訂標頭,AWS Management Console或透過下載和編輯customHttp.yml檔案。

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

  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並開啟擴大控制台

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

  6. 在導覽窗格中,選擇 [應用程式設定] > [自訂標題]。

  7. 在「自訂頁首規格」區段中,選擇「下載」。

  8. 在您選擇的程式碼編輯器中開啟下載的customHttp.yml檔案,然後輸入您amplify.yml在步驟 3 中刪除的自訂標頭資訊。

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

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

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

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

注意

customHttp.yml檔案中設定並部署在應用程式根目錄中的自訂標頭將覆寫在AWS Management Console.

自定義頁眉

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

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

  • 您可以使用的自訂標頭區段,為 monorepo 中的應用程式指定自訂標頭。AWS Management Console請注意,您必須重新部署應用程式才能套用新的自訂標頭。

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

安全性標頭範例

自訂安全標頭可讓您強制執行 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'"

快取控制標頭範例

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

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

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

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