本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
遷移 Elastic Beanstalk Windows Server 平台的主要版本
AWS Elastic Beanstalk 有數個主要版本的 Windows Server 平台。此頁面涵蓋了每個主要版本的主要改善,以及在您遷移至更新版本前應考量的事項。
Windows Server 平台目前的版本為第 2 版 (v2)。若您的應用程式使用任何 v2 之前的 Windows Server 平台版本,我們建議您遷移至 v2。
Windows Server 平台主要版本中的新功能
Windows Server 平台 V2
Elastic Beanstalk Windows Server 平台的第 2 版 (v2) 已在 2019 年 2 月發行。V2 透過數種重要方式,讓 Windows Server 平台的行為與 Elastic Beanstalk Linux 類型平台的行為更為接近。V2 可完全與舊版 v1 相容,這使得從 v1 遷移的過程更為容易。
Windows Server 平台目前支援以下功能:
-
版本控制 – 每個版本都會取得新的版本號碼,而您可以在建立和管理環境時參考以前的版本 (您可以使用的版本)。
-
增強式運作狀態 – 如需詳細資訊,請參閱Elastic Beanstalk 中的增強型運作狀態報告和監控。
-
不可變部署和以額外批次進行滾動部署 – 如需部署原則的詳細資訊,請參閱將應用程式部署至 Elastic Beanstalk 環境。
-
不可變更新 – 如需更新類型的詳細資訊,請參閱組態變更。
-
受管平台更新 – 如需詳細資訊,請參閱受管平台更新。
注意
新的部署和更新功能依賴增強式運作狀態。請啟用增強式運作狀態以使用他們。如需詳細資訊,請參閱啟用 Elastic Beanstalk 增強型運作狀態報告。
Windows Server 平台 V1
Elastic Beanstalk Windows Server 平台的第 1.0.0 版 (v1) 已在 2015 年 10 月發行。此版本變更了 Elastic Beanstalk 在建立環境與更新期間,處理組態檔案中命令的順序。
先前的平台版本,在解決方案堆疊名稱中並未包含版本號碼:
-
執行 IIS 8.5 的 64 位元 Windows Server 2012 R2
-
執行 IIS 8.5 的 64 位元 Windows Server Core 2012 R2
-
執行 IIS 8 的 64 位元 Windows Server 2012
-
執行 IIS 7.5 的 64 位元 Windows Server 2008 R2
在先前的版本中,組態檔案的處理順序並不一致。當環境建立時,Container Commands
會在應用程式原始碼部署到 IIS 後執行。部署到執行中的環境時,容器指令會在新版本部署之前執行。在進行擴展時,則完全不會處理組態檔案。
除此之外,IIS 會在容器指令執行之前啟動。因此,一些客戶在容器的命令中實作了因應措施,讓 IIS 伺服器在命令執行之前先暫停,等命令執行完成後再次啟動。
第 1 版修正了不一致性,使 Windows Server 平台的行為與 Elastic Beanstalk Linux 類型平台的行為更為接近。在 v1 平台中,Elastic Beanstalk 永遠都會先執行容器命令,再啟動 IIS 伺服器。
v1 平台解決方案堆疊在 Windows Server 版本的後方加上了 v1
:
-
執行 IIS 8.5 的 64 位元 Windows Server 2012 R2 1.1.0 版
-
執行 IIS 8.5 的 64 位元 Windows Server Core 2012 R2 1.1.0 版
-
執行 IIS 8 的 64 位元 Windows Server 2012 1.1.0 版
-
執行 IIS 7.5 的 64 位元 Windows Server 2008 R2 1.1.0 版
此外,v1 平台會先將您應用程式來源套件的內容,解壓縮到 C:\staging\
,再執行容器命令。在容器命令執行完成後,此資料夾的內容會壓縮成 .zip 檔案,然後部署到 IIS。此工作流程可讓您在進行部署之前,先用命令或指令碼來修改應用程式來源套件的內容。
從先前的 Windows Server 平台主要版本遷移
請在更新環境前,先閱讀本節的遷移考量事項。若要將您環境的平台更新至更新的版本,請參閱更新您 Elastic Beanstalk 環境的平台版本。
從 V1 到 V2
Windows Server 平台 v2 不支援 .NET Core 1.x 及 2.0。若您要將應用程式從 Windows Server v1 遷移至 v2,而您的應用程式使用了其中一個 .NET Core 版本,請將您的應用程式更新至 v2 支援的 .NET Core 版本。如需支援版本的清單,請參閱 AWS Elastic Beanstalk 平台中的具備 IIS 的 Windows Server 上的 .NET。
如果您的應用程式使用自訂的 Amazon Machine Image (AMI),請根據 Windows Server 平台 v2 AMI 建立新自訂 AMI。如需進一步了解,請參閱在 Elastic Beanstalk 環境中使用自訂 Amazon 機器映像 (AMI)。
注意
Windows Server v2 的部署和更新功能依賴增強式運作狀態。當您將環境遷移至 v2 時,會停用增強式運作狀態。請啟用它以使用這些功能。如需詳細資訊,請參閱啟用 Elastic Beanstalk 增強型運作狀態報告。
從 V1 之前的版本
除了從 v1 遷移的考量事項,若您要從 v1 版本之前的 Windows Server 解決方案堆疊遷移應用程式,而您目前使用容器命令,請在遷移至更新版本時,移除任何您新增至其中,做為處理過程不一致性因應措施的命令。從 v1 開始,容器命令保證會在部署應用程式來源及啟動 IIS 前完全執行。這可讓您對 C:\staging
中的來源進行任何變更,並在此步驟期間修改 IIS 組態檔案,而不會發生任何問題。
例如,您可以使用 從 Amazon S3 AWS CLI 下載 DLL 檔案到您的應用程式來源:
.ebextensions\copy-dll.config
container_commands:
copy-dll:
command: aws s3 cp s3://amzn-s3-demo-bucket/dlls/large-dll.dll .\lib\
如需有關使用組態檔案的詳細資訊,請參閱使用組態檔案 (.ebextensions) 來進行進階的環境自訂。