2017-09-04 43 views
2

我有一個包含多個服務,web和worker的nodejs項目。所有這些服務都在相同的回購協議中,唯一不同的是用於調用它們的腳本。彈性beanstalk中的多個Nodejs應用程序

我想爲每個服務配置不同的配置,但我也想讓它們保持在1個回購下。我可以使用環境,但那樣會混亂我的真實環境,如生產,舞臺等。 如何使用彈性beanstalk這種架構?構建環境是最佳解決方案嗎?

回答

1

有很多方法可以解決這個問題,每個方法都有其優點和缺點。我過去的做法是將我的配置上傳到通常無法被公衆讀取的特定S3存儲桶。然後,我會創建一個簽名的URL(對於未來幾年有用),並將其設置爲Beanstalk配置中的環境變量。然後,在我的.ebextensions/01-setup.config(或其他地方類似的),我有這樣的:

{ 
    "container_commands": { 
    "copy_config": { 
     "command": "curl $CONFIG_URL > conf/config.json" 
    } 
    } 
} 

在啓動時,容器會阻攔從S3桶配置的副本,複製本地,然後應用程序將啓動與此配置。

維護起來非常簡單。

+0

這個架構在beanstalk中會是什麼樣子?每個服務會有多個環境?如果是這樣,你將如何處理環境,如分期,產品等? – sidoshi

+0

@sidoshi是的,我會爲每個環境創建一個單獨的Beanstalk應用程序。當你在beanstalk中配置它時,你可以指定'CONFIG_URL'環境變量。該URL將是一個指向適合該環境的配置的簽名URL。在您的S3存儲桶中,您將擁有諸如「appname-config-prod.json」,「appname-config-dev.json」等內容。 – Brad

相關問題