使用配置檔案自定義AWS Elastic Beanstalk
使用者現在可以通過YAML配置檔案來自定義AWS的Elastic Beanstalk的配置了。你可以通過配置來進行如下操作:下載並安裝包、下載並解壓檔案、建立檔案、建立使用者/組、執行命令、啟動/停止服務、定義容器的設定等。 過去,你只能通過建立自定義的亞馬遜系統映象(AMI)來配置Elastic Beanstalk環境,或者修改你的應用使其能夠在部署時自動配置。自定義的AMI建立後,需要進行維護,因為它不會對作業系統、應用或AWS Elastic Beanstalk主機管理器進行任何更新。相比之下,配置檔案是更好的選擇。
\在Tomat 6/7、Python 2.6和Ruby 1.8.7/1.9.3等環境中都可以使用Elastic Beanstalk配置檔案。亞馬遜雖然計劃支援PHP和.NET的環境,但並未透露具體計劃。如果你有安裝了Tomcat的Elastic Beanstalk的環境,那你需要進行遷移以獲得Elastic Beanstalk配置檔案的特性。你需要登陸AWS控制檯檢視環境的容器型別,來驗證你當前的環境的容器型別是否滿足需求。
\Elastic Beanstalk配置檔案的副檔名必須是.config。你可以在.ebextensions目錄下建立多個.config檔案,這是應用程式目錄的一級目錄。.ebextensions目錄和Java中WAR檔案的WEB-INF目錄一樣,都是一級目錄。
\Elastic Beanstalk配置檔案基於YAML,其中的元素有:
\packages:packages 元素支援下載安裝已打包好的應用和元件。它支援的包管理器有apt,yum,rubygems,python和rpm。下面是使用yum新增logwatch的例子:
\\packages:\ yum:\ logwatch: [7.3.6]\\
sources:sources 元素允許你下載並解壓包。你可以引用外部地址,或是其他軟體源。它支援的格式有tar,tar+gzip,tar+bz2以及zip。下面以從GitHub下載並解壓最新版本jQuery為例:
\\sources:\ /home/ec2-user/jquery: https://github.com/jquery/jquery/zipball/master\\
files:files 元素允許你建立檔案,檔案內容可以直接寫在配置中或是從指定URL獲取。檔案以詞典順序寫入磁碟。下面以建立README檔案並從外部URL獲取內容為例:
\\files:\ /home/ec2-user/README.md: https://raw.github.com/jquery/jquery/master/README.md\\
users, groups:users 元素允許你在EC2的例項上建立Linux/UNIX的使用者。groups 元素允許你建立Linux/UNIX組並指定組ID。下面是AWS文件中的一個例子:
\\users:\ - myuser :\ groups:\ - group1\ - group2\ uid: 50\ homedir: \"/tmp\"\\groups:\ - group1 : 45\ - group2 : 99\ - group3\\
commands:commands 元素允許你執行shell命令。所有命令將按照字典序順序執行。這些命令在應用和Web伺服器安裝前以及應用檔案解壓縮之前執行。下面以重新命名先前我們下載的檔案為例:
\\commands:\ rename-README:\ command: mv README.md README\ cwd: /home/ec2-user\\
containercommands:containercommands 元素允許你執行容器命令。這些命令在應用和Web伺服器安裝完成、應用檔案解壓後,應用檔案部署之前執行。containercommands命令按照字典序順序執行。在自動伸縮組中,有一個作為leadr角色的例項。如果leaderonly 的值為true,那麼命令只在leader例項上執行。下面以在leader例項上使用定製的Tomcat的server.xml為例:
\\container_commands:\ replace-server_xml:\ command: cp .ebextensions/server.xml /etc/tomcat7/server.xml\ leader_only: true\\
services:services 元素允許你定義例項執行時,哪些服務要啟動,哪些服務要停止。這個簡直同時可以允許你指定與source、package、file的關聯關係。下面是AWS文件中的一個例子。
\\services:\ sysvinit:\ - myservice:\ enabled: true\ ensureRunning: true\\
optionsettings:optionsettings 元素允許你定義容器的設定。這些值將以環境變數的形式存在於亞馬遜EC2的例項中。Python容器支援的名稱空間有 aws:elasticbeanstalk:application:environment,aws:elasticbeanstalk:container:python 和 aws:elasticbeanstalk:container:python:staticfiles 。Java容器支援的名稱空間有 aws:elasticbeanstalk:application:environment 和 aws:elasticbeanstalk:container:tomcat:jvmoptions 。Ruby容器支援的名稱空間有aws:elasticbeanstalk:application:environment 。下面以將Tomcat中JVM的max heap size 設定為512MB為例。
\\option_settings:\ - namespace: aws:elasticbeanstalk:container:tomcat:jvmoptions\ option_name: Xmx\ value: 512m\\
如需瞭解更多的資訊,請訪問自定義配置AWS Elastic Beanstalk環境頁面。對於YAML的新使用者可以使用線上YAML解析器,對建立配置檔案有很大幫助。
\檢視英文原文:Customize AWS Elastic Beanstalk with Configuration Files
\感謝馬國耀對本文的審校。
\給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ)或者騰訊微博(@InfoQ)關注我們,並與我們的編輯和其他讀者朋友交流。
相關文章
- php 自定義配置檔案PHP
- golang 使用 viper 讀取自定義配置檔案Golang
- springboot如何使用自定義配置檔案Spring Boot
- Yii自定義配置檔案存放方法
- docker Redis 自定義配置檔案啟動DockerRedis
- 快速自定義Cordova外掛(-配置檔案)
- 使用stub快速生成自定義檔案
- SpringBoot讀取自定義配置檔案Spring Boot
- 使用docker執行nginx服務,掛載自定義配置檔案DockerNginx
- 使用 setenv 配置檔案管理 Tomcat 的自定義環境變數Tomcat變數
- springboot讀取自定義配置檔案節點Spring Boot
- docker最新版本如何自定義配置檔案Docker
- DesignBuilder自定義材料檔案UI
- 【風語·深藍 】.NET 2.0的自定義配置檔案體系初探
- 如何自定義 CI/CD 配置檔案中的輸入引數?
- XCode 建立自定義檔案模版XCode
- 關於mybatis生成外掛Generator配置檔案中自定義註釋MyBatis
- Elastic Beanstalk-自動生成的S3無法刪除問題ASTBeanS3
- Laravel 實現自定義生成檔案命令Laravel
- iOS自定義log並寫入檔案iOS
- MySQL8.0 For Windows 安裝教程(自定義配置檔案、密碼方式修改)MySqlWindows密碼
- OmniMarkupPreviewer 使用自定義的瀏覽器預覽markdown檔案View瀏覽器
- larave 日誌自定義配置格式記錄呼叫檔案路徑與行號
- [使用技巧] GitHub pages 自定義域名配置 httpsGithubHTTP
- 自定義檔案上傳功能實現方法
- WPF -- 使用當前程式開啟自定義檔案的一種方式
- [譯] 使用自定義檔案模板加快你的應用開發速度
- BIEE 儲存本地自定義檔案並通過fmap函式使用函式
- 更改glogin.sql檔案,自定義SQLPLUS使用環境SQL
- iOS專案開發實戰——配置自定義動畫iOS動畫
- AWS 檔案預簽名URL
- 驗證裡,PHP 檔案中指定自定義值PHP
- oracle sqldeveloper下 自定義Snippets檔案的替換OracleSQLDeveloper
- 自定義 loader 讀取 *.vue 檔案原始碼Vue原始碼
- 打包策略 自定義打包配置
- 部分Oracle 配置檔案引數含義Oracle
- 【Spring Boot 使用記錄】kafka自動配置和自定義配置Spring BootKafka
- FastDFS加Redis實現自定義檔名儲存海量檔案ASTRedis