本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
App Runner 組態檔案參考
注意
組態檔案僅適用於以原始程式碼為基礎的服務。您無法搭配映像型服務使用組態檔案。
本主題是 AWS App Runner 組態檔案語法和語義的完整參考指南。如需 App Runner 組態檔案的概觀,請參閱使用組態檔案設定 App Runner 服務選項。
App Runner 組態檔案是 YAML 檔案。將其命名為 apprunner.yaml
,並將其放在應用程式儲存庫的來源目錄中。
結構概觀
App Runner 組態檔案是 YAML 檔案。將其命名為 apprunner.yaml
,並將其放置在應用程式儲存庫的來源目錄中。
App Runner 組態檔案包含下列主要部分:
-
頂端區段 – 包含最上層金鑰
-
建置區段 – 設定建置階段
-
執行區段 – 設定執行階段
頂端區段
檔案頂端的金鑰提供檔案和服務執行時間的一般資訊。可使用下列金鑰:
-
version
– 必要。App Runner 組態檔案版本。理想情況下,請使用最新版本。語法
version:
version
範例
version: 1.0
-
runtime
– 必要。應用程式使用的執行時間名稱。若要了解 App Runner 提供的不同程式設計平台可用的執行期,請參閱 以原始碼為基礎的 App Runner 服務。注意
受管執行時間的命名慣例為
<language-name><major-version>
。語法
runtime:
runtime-name
範例
runtime: python3
建置區段
建置區段會設定 App Runner 服務部署的建置階段。您可以指定建置命令和環境變數。組建命令是必要的。
本節以 build:
金鑰開頭,並具有下列子金鑰:
-
commands
– 必要。指定 App Runner 在各種建置階段執行的命令。包括下列子索引鍵:-
pre-build
– 選用。App Runner 在建置之前執行的命令。例如,安裝npm相依性或測試程式庫。 -
build
– 必要。App Runner 執行的命令可建置您的應用程式。例如,使用 pipenv。 -
post-build
– 選用。App Runner 在建置之後執行的命令。例如,使用 Maven 將建置成品封裝至 JAR 或 WAR 檔案,或執行測試。
語法
build: commands: pre-build: -
command
-…
build: -command
-…
post-build: -command
-…
範例
build: commands: pre-build: - yum install openssl build: - pip install -r requirements.txt post-build: - python manage.py test
-
-
env
– 選用。指定建置階段的自訂環境變數。定義為名稱值純量映射。您可以在建置命令中依名稱參考這些變數。注意
此組態檔案中的兩個不同位置有兩個不同的
env
項目。一組位於建置區段,另一組位於執行區段。-
在建置過程中,
pre-build
、post-build
、build
和pre-run
命令可以參考建置區段中的env
設定。重要 - 請注意,
pre-run
命令位於此檔案的執行區段中,即使它們只能存取建置區段中定義的環境變數。 -
執行區段中的
env
集合可由執行時間環境中的run
命令參考。
語法
build: env: - name:
name1
value:value1
- name:name2
value:value2
-…
範例
build: env: - name: DJANGO_SETTINGS_MODULE value: "django_apprunner.settings" - name: MY_VAR_EXAMPLE value: "example"
-
執行區段
執行區段會設定 App Runner 應用程式部署的容器執行階段。您可以指定執行時間版本、執行前命令 (僅限修訂版格式)、啟動命令、網路連接埠和環境變數。
本節以 run:
金鑰開頭,並具有下列子金鑰:
-
runtime-version
– 選用。指定您要為 App Runner 服務鎖定的執行期版本。根據預設,只有主要版本會鎖定。App Runner 使用最新的次要和修補程式版本,可用於每次部署或服務更新上的執行期。如果您指定主要和次要版本,這兩個版本都會遭到鎖定,而 App Runner 只會更新修補程式版本。如果您指定主要、次要和修補程式版本,您的服務會鎖定在特定執行時間版本,且 App Runner 永遠不會更新。
語法
run: runtime-version:
major[.minor[.patch]]
注意
某些平台的執行時間具有不同的版本元件。如需詳細資訊,請參閱特定平台主題。
範例
runtime: python3 run: runtime-version: 3.7
-
pre-run
– 選用。 僅限修訂後的建置用量。指定 App Runner 從建置映像複製到執行映像之後執行的命令。您可以在此輸入命令,以修改/app
目錄外的執行映像。例如,如果您需要安裝位於/app
目錄以外的其他全域相依性,請在此子區段中輸入所需的命令來執行此操作。如需 App Runner 建置程序的詳細資訊,請參閱受管執行期版本和 App Runner 組建。注意
-
重要 – 即使
pre-run
命令列在執行區段中,它們只能參考此組態檔案建置區段中定義的環境變數。他們無法參考此執行區段中定義的環境變數。 -
參數
pre-run
僅受修訂的 App Runner 建置支援。如果您的應用程式使用原始 App Runner 組建支援的執行期版本,請勿將此參數插入您的組態檔案中。如需詳細資訊,請參閱受管執行期版本和 App Runner 組建。
語法
run: pre-run: -
command
-…
-
-
command
– 必要。App Runner 在完成應用程式建置後用來執行應用程式的命令。語法
run: command:
command
-
network
– 選用。指定應用程式接聽的連接埠。其包括以下內容:-
port
– 選用。如果指定,這是您的應用程式接聽的連接埠號碼。預設值為8080
。 -
env
– 選用。如果指定,App Runner 會將連接埠號碼傳遞到此環境變數中的容器,除了 (而不是) 在預設環境變數 中傳遞相同的連接埠號碼PORT
。換句話說,如果您指定env
,App Runner 會在兩個環境變數中傳遞連接埠號碼。
語法
run: network: port:
port-number
env:env-variable-name
範例
run: network: port: 8000 env: MY_APP_PORT
-
-
env
– 選用。執行階段的自訂環境變數定義。定義為名稱值純量映射。您可以在執行時間環境中依名稱參考這些變數。注意
此組態檔案中的兩個不同位置有兩個不同的
env
項目。一組位於建置區段,另一組位於執行區段。-
在建置過程中,
pre-build
、post-build
、build
和pre-run
命令可以參考建置區段中的env
設定。重要 - 請注意,
pre-run
命令位於此檔案的執行區段中,即使它們只能存取建置區段中定義的環境變數。 -
執行區段中的
env
集合可由執行時間環境中的run
命令參考。
語法
run: env: - name:
name1
value:value1
- name:name2
value:value2
secrets: - name:name1
value-from:arn:aws:secretsmanager:region:aws_account_id:secret:secret-id
- name:name2
value-from:arn:aws:ssm:region:aws_account_id:parameter/parameter-name
-…
範例
run: env: - name: MY_VAR_EXAMPLE value: "example" secrets: - name: my-secret value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::" - name: my-parameter value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name" - name: my-parameter-only-name value-from: "parameter-name"
-