本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Go 平台
AWS App Runner Go 平台提供受管理的執行階段。每個執行階段都可以使用以 Go 版本為基礎的 Web 應用程式輕鬆建置和執行容器。當您使用 Go 執行階段時,應用程式執行階段會以受管理的 Go 執行階段映像開始。此映像檔是以 Amazon Linux Docker 映像檔
當您使用應用程式執行器主控台或 CreateServiceAPI 作業建立服務時,您可以指定應用程式執行器服務的執行階段。您也可以將執行階段指定為原始程式碼的一部分。在您包含在程式碼儲存庫中的 App Runner 設定檔中使用runtime
關鍵字。託管運行時的命名約定是。 <language-name><major-version>
如需有效的 Go 執行階段名稱和版本,請參閱Go 執行階段版本資訊。
App Runner 會在每次部署或服務更新時,將服務的執行階段更新為最新版本。如果您的應用程式需要特定版本的受管理執行階段,您可以使用 App Runner 設定檔中的runtime-version
關鍵字來指定它。您可以鎖定到任何級別的版本,包括主要或次要版本。應用程序運行器僅對服務的運行時進行較低級別的更新。
Go 執行階段的版本語法:major
[.minor
[.patch
]]
例如:1.18.7
下列範例會示範版本鎖定:
-
1.18
-鎖定主要和次要版本。應用程序運行器僅更新補丁版本。 -
1.18.7
— 鎖定到特定的修補程式版本。應用程序運行器不會更新您的運行時版本。
去運行時配置
當您選擇受管理的執行階段時,您也必須設定最低限度的建置和執行命令。您可以在創建或更新應用程序運行器服務時進行配置。您可以使用下列其中一種方法來執行此操作:
-
使用 App Runner 主控台 — 在建立程序或設定索引標籤的 [設定組建] 區段中指定命令。
-
使用應用程式執行程式 API — 呼叫CreateService或 UpdateServiceAPI 作業。使用CodeConfigurationValues資料類型的
BuildCommand
和StartCommand
成員指定命令。 -
使用組態檔案 — 在最多三個建置階段中指定一或多個建置命令,以及用來啟動應用程式的單一執行命令。還有其他可選配置設置。
提供組態檔案是選擇性的。當您使用主控台或 API 建立 App Runner 服務時,您可以指定應用程式執行器是在建立時直接取得您的組態設定,還是從組態檔案取得您的組態設定。
Go 執行階段範例
下列範例顯示用於建置和執行 Go 服務的應用程式執行器組態檔案。
此範例顯示可與 Go Managed 執行階段搭配使用的最小組態檔案。如需 App Runner 使用最小組態檔案所做的假設,請參閱組態檔案範例。
範例 阿普魯人. 羊
version: 1.0 runtime: go1 build: commands: build: - go build main.go run: command: ./main
這個例子顯示了使用 Go 託管運行時的所有配置鍵。
注意
這些範例中使用的執行階段版本為 1.18.7
。您可以將其替換為您要使用的版本。如需最新支援的 Go 執行階段版本,請參閱Go 執行階段版本資訊。
範例 阿普魯人. 羊
version: 1.0 runtime: go1 build: commands: pre-build: - scripts/prebuild.sh build: - go build main.go post-build: - scripts/postbuild.sh env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version:
1.18.7
command: ./main network: port: 3000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"
這些範例顯示您可以部署至 Go 執行階段服務的完整 Go 應用程式的原始程式碼。
範例 main.go
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "<h1>Welcome to App Runner</h1>") }) fmt.Println("Starting the server on :3000...") http.ListenAndServe(":3000", nil) }
範例 阿普魯人. 羊
version: 1.0 runtime: go1 build: commands: build: - go build main.go run: command: ./main network: port: 3000 env: APP_PORT