本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂標頭
自訂 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
文件並將其保存在項目的根目錄中來指定標題。
設定應用程式的自訂標頭並將其儲存在主控台
-
登入 AWS Management Console 並開啟 Amplify 大控制台
。 -
選擇要為其設置自定義標題的應用程序。
-
在導覽窗格中,選擇「主機」,然後選擇「自訂標題」。
-
在 [自訂標題] 頁面上,選擇 [編輯]。
-
在 [編輯自訂標頭] 視窗中,使用自訂標頭 YAML 格式輸入自訂標頭的資訊。
-
對於
pattern
,輸入要符合的樣式。 -
在中
key
,輸入自訂標頭的名稱。 -
在中
value
,輸入自訂標頭的值。
-
-
選擇儲存。
-
重新部署應用程式以套用新的自訂標頭。
-
對於 CI/CD 應用程式,請瀏覽至要部署的分支,然後選擇「重新部署此版本」。您也可以從 Git 儲存庫執行新的組建。
-
對於手動部署應用程式,請在 Amplify 主控台中再次部署應用程式。
-
若要為應用程式設定自訂標頭並將其儲存在儲存庫的根目錄中
-
登入 AWS Management Console 並開啟 Amplify 大控制台
。 -
選擇要為其設置自定義標題的應用程序。
-
在導覽窗格中,選擇「主機」,然後選擇「自訂標題」。
-
在 [自訂標題] 頁面上,選擇 [下載 YML]。
-
在您選擇的代碼編輯器中打開下載的
customHttp.yml
文件,然後使用自定義標題 YAML 格式輸入自定義標題的信息。-
對於
pattern
,輸入要符合的樣式。 -
在中
key
,輸入自訂標頭的名稱。 -
在中
value
,輸入自訂標頭的值。
-
-
將編輯過的
customHttp.yml
檔案儲存在專案的根目錄中。如果您正在使用 monorepo,請將customHttp.yml
文件保存在回購的根目錄中。 -
重新部署應用程式以套用新的自訂標頭。
-
如果是 CI/CD 應用程式,請從包含新檔案的 Git 儲存庫執行新
customHttp.yml
組建。 -
對於手動部署應用程式,請在 Amplify 主控台中再次部署應用程式,並將新
customHttp.yml
檔案與您上傳的成品一起包含在內。
-
注意
在customHttp.yml
檔案中設定並部署在應用程式根目錄中的自訂標頭會覆寫在 Amplify 主控台中「自訂標題」區段中定義的自訂標頭。
移轉自訂標頭
以前,通過在 Amplify 控制台中編輯 buildspec,或者通過下載和更新amplify.yml
文件並將其保存在項目的根目錄中來為應用程序指定自定義 HTTP 標頭。強烈建議您將自訂標頭移轉出組建規格和檔案amplify.yml
。
在 Amplify 主控台的 [自訂標題] 區段中指定自訂標題,或透過下載和編輯customHttp.yml
檔案來指定您的自訂標題。
移轉儲存在 Amplify 主控台中的自訂標頭
-
登入 AWS Management Console 並開啟 Amplify 大控制台
。 -
選擇要在其上執行自定義標題遷移的應用程序。
-
在導航窗格中,選擇託管,構建設置。在「應用程序構建規範」部分中,您可以查看應用程序的構建規格。
-
選擇「下載」以儲存目前組建規格的副本。如果您稍後需要復原任何設定,可以參考此複本。
-
下載完成時,選擇 [編輯]。
-
請記下檔案中的自訂標頭資訊,因為您稍後會在步驟 9 中使用它。在 「編輯」視窗中,刪除檔案中的任何自訂標題,然後選擇「儲存」。
-
在導覽窗格中,選擇 [主機]、[自訂標題]。
-
在 [自訂標題] 頁面上,選擇 [編輯]。
-
在 「編輯自訂標題」視窗中,輸入您在步驟 6 中刪除的自訂標頭資訊。
-
選擇儲存。
-
重新部署您想要套用新自訂標頭的任何分支。
若要將自訂標頭從放大的 .yml 移轉至自訂 Http.yML
-
導航到應用程序根目錄中當前部署的
amplify.yml
文件。 -
amplify.yml
在您選擇的程式碼編輯器中開啟。 -
請記下檔案中的自訂標頭資訊,因為您稍後會在步驟 8 中使用它。刪除檔案中的自訂標頭。儲存並關閉檔案。
-
登入 AWS Management Console 並開啟 Amplify 大控制台
。 -
選擇要為其設置自定義標題的應用程序。
-
在導覽窗格中,選擇 [主機]、[自訂標題]。
-
在 [自訂標題] 頁面上,選擇 [下載]。
-
在您選擇的代碼編輯器中打開下載的
customHttp.yml
文件,然後輸入您amplify.yml
在步驟 3 中刪除的自定義標題的信息。 -
將編輯過的
customHttp.yml
檔案儲存在專案的根目錄中。如果您正在使用 monorepo,請將文件保存在回購的根目錄中。 -
重新部署應用程式以套用新的自訂標頭。
-
如果是 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'
如需使用標頭控制應用程式效能的詳細資訊,請參閱使用標頭控制快取持續時間。