在 Amplify 控制台中編輯構建規格 - AWS Amplify 託管

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

在 Amplify 控制台中編輯構建規格

您可以在 Amplify 控制台中編輯構建規格來自定義應用程序的構建設置。構建設置將應用於應用程序中的所有分支,但在 Git 存儲庫中保存了amplify.yml文件的分支除外。

在 Amplify 控制台中編輯構建設置
  1. 登入 AWS Management Console 然後開啟 Amplify 控制台

  2. 選擇您要編輯其構建設置的應用程序。

  3. 在導覽窗格中,選擇 [主機],然後選擇 [建置設定]。

  4. [組建設定] 頁面的 [應用程式組建規格] 區段中,選擇 [編輯]。

  5. 「編輯建構規格」視窗中,輸入您的更新。

  6. 選擇 Save (儲存)。

您可以使用下列主題中描述的範例來更新特定案例的組建設定。

使用腳本設置分支特定的構建設置

您可以使用 bash shell 指令碼來配置分支特定的建置設定。例如,如果分支名稱為 main,則下列指令碼會使用系統環境變數 $ AWS_BRANCH 執行一組指令,如果分支名稱為 dev,則使用不同的指令集。

frontend: phases: build: commands: - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi

對於壟斷,用戶希望能夠cd進入一個文件夾來運行構建。執行cd命令之後,它會套用至組建的所有階段,因此您不需要在不同階段重複指令。

version: 1 env: variables: key: value frontend: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build

使用 Gen 1 應用程式的前端部署後端

注意

本節僅適用於 Amplify 第 1 代應用程式。一代 1 後端使用 Amplify 工作室和 Amplify 命令行界面()CLI創建。

此命amplifyPush令是協助程式指令碼,可協助您進行後端部署。下面的建置設定會自動判斷要為目前分支部署的正確後端環境。

version: 1 env: variables: key: value backend: phases: build: commands: - amplifyPush --simple

設置輸出文件夾

以下建置設定會將輸出目錄設定為公有資料夾。

frontend: phases: commands: build: - yarn run build artifacts: baseDirectory: public

將套件安裝為組建的一部分

您可以在建置期間使用npmyarn指令來安裝套件。

frontend: phases: build: commands: - npm install -g <package> - <package> deploy - yarn run build artifacts: baseDirectory: public

使用私有 npm 註冊表

您可以新增對您的建置設定中私有登錄的參考,或將它新增為環境變數。

build: phases: preBuild: commands: - npm config set <key> <value> - npm config set registry https://registry.npmjs.org - npm config set always-auth true - npm config set email hello@amplifyapp.com - yarn install

安裝 OS 套件

Amplify 的 AL2 023 映像檔會以名為的非特權使用者執行您的程式碼。amplifyAmplify 會授與此使用者使用 Linux sudo 命令執行作業系統命令的權限。如果您想要安裝作業系統套件以尋找遺失的相依性,您可以使rpmyumsudo.

下面的示例構建部分演示了使用sudo命令安裝操作系統包的語法。

build: phases: preBuild: commands: - sudo yum install -y <package>

為每個構建設置鍵值存儲

在建置階段envCache提供索引鍵值儲存。儲存在中的值只envCache能在建置期間修改,而且可以在下一個組建中重複使用。使用envCache,我們可以儲存已部署環境的相關資訊,並在連續組建中將其提供給組建容器。與儲存在中的值不同envCache,組建期間對環境變數的變更不會保留在 future 的組建中。

使用範例:

envCache --set <key> <value> envCache --get <key>

跳過提交的構建

要在特定提交上跳過自動構建,請在提交消息末尾添加文本 [skip p-cd]

關閉每次提交時的自動構建

您可以將 Amplify 設定為關閉每個程式碼提交時的自動建置。若要進行設定,請選擇 [應用程式設定]、[分支設定],然後找到列出連線支的 [分支] 區段。選取分支,然後選擇 [動作] > [停用 auto 建置]。對該分支的新提交將不再啟動新的構建。

配置基於差異的前端構建和部署

您可以將「Amplify」設定為使用基於差異的前端組建。如果啟用,則在每個構建啟動時,Amplify 會默認嘗試在您appRoot的或/src/文件夾上運行 diff。如果 Amplify 找不到任何差異,它會略過前端組建、測試 (如果已設定) 和部署步驟,而不會更新您的託管應用程式。

配置基於差異的前端構建和部署
  1. 登入 AWS Management Console 然後開啟 Amplify 控制台

  2. 選擇要配置基於差異的前端構建和部署的應用程序。

  3. 在導覽窗格中,選擇 [主機]、[環境變數]。

  4. 在「環境變數」區段中,選擇「管理變數」。

  5. 設定環境變數的程序會因您啟用或停用差異型前端建置與部署而有所不同。

    • 啟用基於差異的前端構建和部署

      1. 在「管理變數」區段的「數」下,輸入AMPLIFY_DIFF_DEPLOY

      2. 針對數值,輸入 true

    • 禁用基於差異的前端構建和部署

      1. 執行以下任意一項:

        • 在「管理變數」區段中,找出AMPLIFY_DIFF_DEPLOY。針對數值,輸入 false

        • 移除環AMPLIFY_DIFF_DEPLOY境變數。

  6. 選擇 Save (儲存)。

或者,您可以設置AMPLIFY_DIFF_DEPLOY_ROOT環境變量,以使用相對於存儲庫根目錄的路徑覆蓋默認路徑,例如dist

為第 1 代應用程式設定基於差異的後端建置

注意

本節僅適用於 Amplify 第 1 代應用程式。一代 1 後端使用 Amplify 工作室和 Amplify 命令行界面()CLI創建。

您可以將 Amplify 託管配置為使用AMPLIFY_DIFF_BACKEND環境變量使用基於差異的後端構建。當您啟用基於差異的後端構建時,在每個構建開始時,Amplify 會嘗試對存儲庫中的amplify文件夾運行差異。如果 Amplify 沒有發現任何差異,它會跳過後端構建步驟,並且不會更新後端資源。如果您的專案在儲存庫中沒有amplify資料夾,Amplify 會忽略AMPLIFY_DIFF_BACKEND環境變數的值。

如果您當前在後端階段的構建設置中指定了自定義命令,則條件後端構建將無法正常工作。如果要運行這些自定義命令,則必須將它們移動到應用程序amplify.yml文件中構建設置的前端階段。

若要設定基於差異的後端組建
  1. 登入 AWS Management Console 然後開啟 Amplify 控制台

  2. 選擇要配置基於差異的後端構建的應用程序。

  3. 在導覽窗格中,選擇 [主機]、[環境變數]。

  4. 在「環境變數」區段中,選擇「管理變數」。

  5. 設定環境變數的程序會因您啟用或停用差異型後端組建而有所不同。

    • 啟用基於差異的後端構建

      1. 在「管理變數」區段的「數」下,輸入AMPLIFY_DIFF_BACKEND

      2. 針對數值,輸入 true

    • 若要停用基於差異的後端建置

      1. 執行以下任意一項:

        • 在「管理變數」區段中,找出AMPLIFY_DIFF_BACKEND。針對數值,輸入 false

        • 移除環AMPLIFY_DIFF_BACKEND境變數。

  6. 選擇 Save (儲存)。