本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Ruby 平台
AWS App Runner Ruby 平台提供受管理的執行階段。每個執行階段都可以使用 Ruby 版本為基礎的 Web 應用程式輕鬆建置和執行容器。當您使用 Ruby 運行時,應用程序運行器以託管的 Ruby 運行時映像開始。此映像檔是以 Amazon Linux 泊塢視窗映像
當您使用應用程式執行器主控台或 CreateServiceAPI 作業建立服務時,您可以指定應用程式執行器服務的執行階段。您也可以將執行階段指定為原始程式碼的一部分。在您包含在程式碼儲存庫中的 App Runner 設定檔中使用runtime
關鍵字。託管運行時的命名約定是。 <language-name><major-version>
如需有效的 Ruby 執行階段名稱和版本,請參閱Ruby 執行期發行資訊。
App Runner 會在每次部署或服務更新時,將服務的執行階段更新為最新版本。如果您的應用程式需要特定版本的受管理執行階段,您可以使用 App Runner 設定檔中的runtime-version
關鍵字來指定它。您可以鎖定到任何級別的版本,包括主要或次要版本。應用程序運行器僅對服務的運行時進行較低級別的更新。
Ruby 執行階段的版本語法:major
[.minor
[.patch
]]
例如:3.1.2
下列範例會示範版本鎖定:
-
3.1
-鎖定主要和次要版本。應用程序運行器僅更新補丁版本。 -
3.1.2
— 鎖定到特定的修補程式版本。應用程序運行器不會更新您的運行時版本。
紅寶石運行配置
當您選擇受管理的執行階段時,您也必須設定最低限度的建置和執行命令。您可以在創建或更新應用程序運行器服務時進行配置。您可以使用下列其中一種方法來執行此操作:
-
使用 App Runner 主控台 — 在建立程序或設定索引標籤的 [設定組建] 區段中指定命令。
-
使用應用程式執行程式 API — 呼叫CreateService或 UpdateServiceAPI 作業。使用CodeConfigurationValues資料類型的
BuildCommand
和StartCommand
成員指定命令。 -
使用組態檔案 — 在最多三個建置階段中指定一或多個建置命令,以及用來啟動應用程式的單一執行命令。還有其他可選配置設置。
提供組態檔案是選擇性的。當您使用主控台或 API 建立 App Runner 服務時,您可以指定應用程式執行器是在建立時直接取得您的組態設定,還是從組態檔案取得您的組態設定。
紅寶石運行時例
下面的例子顯示了用於構建和運行 Ruby 服務的應用程序運行配置文件。
這個例子顯示了一個最小的配置文件,你可以與 Ruby 託管的運行時使用。如需 App Runner 使用最小組態檔案所做的假設,請參閱組態檔案範例。
範例 阿普魯人. 羊
version: 1.0 runtime: ruby31 build: commands: build: - bundle install run: command: bundle exec rackup --host 0.0.0.0 -p 8080
這個例子顯示了使用所有的配置鍵與 Ruby 託管運行時。
注意
這些範例中使用的執行階段版本為 3.1.2
。您可以將其替換為您要使用的版本。如需最新支援的 Ruby 執行階段版本,請參閱Ruby 執行期發行資訊。
範例 阿普魯人. 羊
version: 1.0 runtime: ruby31 build: commands: pre-build: - scripts/prebuild.sh build: - bundle install post-build: - scripts/postbuild.sh env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version:
3.1.2
command: bundle exec rackup --host 0.0.0.0 -p 4567 network: port: 4567 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"
這些範例顯示您可以部署至 Ruby 執行階段服務的完整 Ruby 應用程式的原始程式碼。
範例 伺服器 .rb
# server.rb require 'sinatra' get '/' do 'Hello World!' end
範例 config.ru
# config.ru require './server' run Sinatra::Application
範例 Gemfile
# Gemfile source 'https://rubygems.org (https://rubygems.org/)' gem 'sinatra' gem 'puma'
範例 阿普魯人. 羊
version: 1.0 runtime: ruby31 build: commands: build: - bundle install run: command: bundle exec rackup --host 0.0.0.0 -p 4567 network: port: 4567 env: APP_PORT