選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 Elastic Beanstalk Ruby 平台

焦點模式
使用 Elastic Beanstalk Ruby 平台 - AWS Elastic Beanstalk

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

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

本主題說明如何在 Elastic Beanstalk 上設定、建置和執行 Ruby 應用程式。

AWS Elastic Beanstalk 支援多個不同版本的 Ruby 程式設計語言平台分支。如需完整清單,請參閱 AWS Elastic Beanstalk 平台文件中的 Ruby

Ruby Web 應用程式可以在 Puma 應用程式伺服器下在 NGINX 代理伺服器後方執行。如果您使用 RubyGems,您可以在原始碼套件Gemfile中包含 ,以在部署期間安裝套件。

應用程式伺服器組態

Elastic Beanstalk 會根據您在建立環境時選擇的 Ruby 平台分支安裝 Puma 應用程式伺服器。如需 Ruby 平台版本提供之元件的詳細資訊,請參閱AWS Elastic Beanstalk 平台指南中的支援的平台

您可以使用自己提供的 Puma 伺服器設定您的應用程序。這提供了一個選項,以使用 Ruby 平台分支預先安裝的 Puma 其他版本。您也可以將應用程式設定為使用不同的應用程式伺服器,例如 Passenger。若要這麼做,您必須在您的部署中包含並自訂 Gemfile。您還需要設定 Procfile 以啟動應用程式伺服器。如需更多詳細資訊,請參閱使用 Procfile 設定應用程式程序

其他組態選項

Elastic Beanstalk 提供組態選項,可讓您用來自訂在 Elastic Beanstalk 環境中 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行的軟體。您可以設定應用程式所需的環境變數,啟用至 Amazon S3 的日誌輪換,並在應用程式來源中,將包含靜態檔案的資料夾映射到代理伺服器提供的路徑。平台也會預先定義與 Rails 和 Rack 相關的部分常見環境變數,方便探索及使用。

Elastic Beanstalk 主控台中提供了修改正在執行環境組態的組態選項。要避免在終止環境的組態時遺失組態,您可以使用已儲存組態來儲存您的設定,並在之後套用至另一個環境。

若要將設定儲存於原始程式碼,您可以包含組態檔案。每次您建立環境或部署應用程式,組態檔案裡的設定就會套用。您也可以使用組態檔案來安裝套件、執行指令碼,並在部署期間執行其他執行個體自訂操作。

在 Elastic Beanstalk 主控台中套用的設定會覆寫組態檔案中相同的設定 (如存在)。這可讓您在組態檔案中擁有預設設定,並以主控台的環境專屬設定覆寫之。如需優先順序以及其他變更設定方法的詳細資訊,請參閱組態選項

如需各種擴充 Elastic Beanstalk Linux 類型平台方式的詳細資訊,請參閱 擴充 Elastic Beanstalk Linux 平台

設定您的 Ruby 環境

您可以使用 Elastic Beanstalk 主控台來啟用至 Amazon S3 的日誌輪換,和設定您應用程式可從環境讀取的變數。

欲存取環境的軟體組態設定
  1. 開啟 Elastic Beanstalk 主控台,然後在區域清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 在導覽窗格中,選擇組態

  4. 更新、監控和日誌記錄組態類別中,選擇編輯

日誌選項

Log options (日誌選項) 區段有兩個設定:

  • Instance profile (執行個體描述檔) – 指定執行個體描述檔,此描述檔具備存取和您應用程式相關聯 Amazon S3 儲存貯體的許可。

  • Enable log file rotation to Amazon S3 (啟用 Amazon S3 的日誌檔案輪換) – 指定是否將應用程式 Amazon EC2 執行個體的日誌檔案複製到與應用程式關聯的 Amazon S3 儲存貯體。

靜態檔案

為改善效能,您可以使用 Static files (靜態檔案) 區段來設定代理伺服器,以為來自 Web 應用程式一組目錄中的靜態檔案 (例如 HTML 或影像) 提供服務。對於每個目錄,您可以設定目錄映射的虛擬路徑。代理伺服器收到位於指定路徑下的檔案請求時,會直接提供檔案而非將請求路由至您的應用程式。

如需使用組態檔案或 Elastic Beanstalk 主控台設定靜態檔案的詳細資訊,請參閱提供靜態檔案

預設情況下,Ruby 環境中的代理伺服器會設定為提供靜態檔案如下:

  • public 資料夾中的檔案透過 /public 路徑和根網域 (/ 路徑) 提供。

  • public/assets 子資料夾中的檔案透過 /assets 路徑提供。

下列範例說明預設組態的運作方式:

  • 若您的應用程式原始碼在名為 public 的資料夾中有一個名為 logo.png 的檔案,則代理伺服器會透過 subdomain.elasticbeanstalk.com/public/logo.pngsubdomain.elasticbeanstalk.com/logo.png 將此檔案提供給使用者。

  • 若您的應用程式原始碼在 public 資料夾中有一個名為 assets 的資料夾,裡面含有一個名為 logo.png 的檔案,則代理伺服器會透過 subdomain.elasticbeanstalk.com/assets/logo.png 提供此檔案。

您可以為靜態檔案設定其他映射項目。如需詳細資訊,請參閱本主題後面部分的 Ruby 組態命名空間

注意

如果是 Ruby 2.7 AL2 3.3.7 版之前的平台版本,預設的 Elastic Beanstalk nginx 代理伺服器組態不支援透過根網域 (subdomain.elasticbeanstalk.com/) 提供靜態檔案。此平台版本於 2021 年 10 月 21 日推出。如需詳細資訊,請參閱AWS Elastic Beanstalk 版本備註新平台版本 - Ruby

環境屬性

Environment Properties (環境屬性) 的部分可讓您針對執行您應用程式的 Amazon EC2 執行個體,來指定其上的環境資訊設定。環境屬性會以金鑰值對的形式傳到應用程式。

Ruby 平台定義下列環境資訊的屬性:

  • BUNDLE_WITHOUT ‒ 自 Gemfile 安裝相依項目時應忽略的群組清單,以冒號分隔。

  • BUNDLER_DEPLOYMENT_MODE ‒ 設為 true (預設值) 以使用 Bundler,在部署模式中安裝相依性。設定為 false,在開發模式中執行 bundle install

    注意

    這個環境屬性並未在 Amazon Linux AMI Ruby 平台分支 (Amazon Linux 2 之前的分支) 上定義。

  • RAILS_SKIP_ASSET_COMPILATION ‒ 設為 true 以在部署期間跳過執行 rake assets:precompile

  • RAILS_SKIP_MIGRATIONS ‒ 設為 true 以在部署期間跳過執行 rake db:migrate

  • RACK_ENV ‒ 指定 Rack 的環境階段。例如,developmentproductiontest

在 Elastic Beanstalk 內所執行的 Ruby 環境中,可使用 ENV 物件來存取環境變數。例如,您可使用下列程式碼,來將名為 API_ENDPOINT 的屬性讀取到變數:

endpoint = ENV['API_ENDPOINT']

如需詳細資訊,請參閱 環境屬性與其他軟體設定

Ruby 組態命名空間

您可以使用組態檔案來設定組態選項,並在部署期間執行其他的執行個體設定工作。組態選項可以是平台特定的,也可以套用至 Elastic Beanstalk 服務整體中的所有平台。組態選項會組織成命名空間

您可以使用 aws:elasticbeanstalk:environment:proxy:staticfiles 命名空間來設定環境代理以提供靜態檔案。您可以定義虛擬路徑到應用程式目錄的對應項目。

Ruby 平台不會定義任何特定於平台的命名空間。反而會定義通用 Rails 和 Rack 選項的環境屬性。

下列組態檔案會指定靜態檔案選項,將對應名為 staticimages 的目錄對應至路徑 /images,設定每個平台定義的環境屬性,以及設定名為 LOGGING 的其他環境屬性。

範例 .ebextensions/ruby-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy:staticfiles: /images: staticimages aws:elasticbeanstalk:application:environment: BUNDLE_WITHOUT: test BUNDLER_DEPLOYMENT_MODE: true RACK_ENV: development RAILS_SKIP_ASSET_COMPILATION: true RAILS_SKIP_MIGRATIONS: true LOGGING: debug
注意

BUNDLER_DEPLOYMENT_MODE 環境屬性和 aws:elasticbeanstalk:environment:proxy:staticfiles 命名空間並未在 Amazon Linux AMI Ruby 平台分支 (Amazon Linux 2 之前的分支) 上定義。

Elastic Beanstalk 可提供許多組態選項讓您自訂環境。除了組態檔案,您也可以使用主控台、已儲存組態、EB CLI 或 AWS CLI來設定組態選項。如需更多資訊,請參閱組態選項

在本頁面

下一個主題:

Gemfile

上一個主題:

開發環境
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。