

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

# 遷移 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 月發行](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2019-02-21-windows-v2.html)。V2 透過數種重要方式，讓 Windows Server 平台的行為與 Elastic Beanstalk Linux 類型平台的行為更為接近。V2 可完全與舊版 v1 相容，這使得從 v1 遷移的過程更為容易。

Windows Server 平台目前支援以下功能：
+ *版本控制* – 每個版本都會取得新的版本號碼，而您可以在建立和管理環境時參考以前的版本 (您可以使用的版本)。
+ *增強式運作狀態* – 如需詳細資訊，請參閱[Elastic Beanstalk 中的增強型運作狀態報告和監控](health-enhanced.md)。
+ *不可變*部署和*以額外批次進行滾動*部署 – 如需部署原則的詳細資訊，請參閱[將應用程式部署至 Elastic Beanstalk 環境](using-features.deploy-existing-version.md)。
+ *不可變更新* – 如需更新類型的詳細資訊，請參閱[組態變更](environments-updating.md)。
+ *受管平台更新* – 如需詳細資訊，請參閱[受管平台更新](environment-platform-update-managed.md)。

**注意**  
新的部署和更新功能依賴增強式運作狀態。請啟用增強式運作狀態以使用他們。如需詳細資訊，請參閱[啟用 Elastic Beanstalk 增強型運作狀態報告](health-enhanced-enable.md)。

### Windows Server 平台 V1


Elastic Beanstalk Windows Server 平台的第 1.0.0 版 (v1) 已在 2015 年 10 月發行。此版本變更了 Elastic Beanstalk 在建立環境與更新期間，處理[組態檔案](ebextensions.md)中命令的順序。

先前的平台版本，在解決方案堆疊名稱中並未包含版本號碼：
+ 執行 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 環境的平台版本](using-features.platform.upgrade.md)。

### 從 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](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.net)。

如果您的應用程式使用自訂的 Amazon Machine Image (AMI)，請根據 Windows Server 平台 v2 AMI 建立新自訂 AMI。如需進一步了解，請參閱[在 Elastic Beanstalk 環境中使用自訂 Amazon Machine Image (AMI)](using-features.customenv.md)。

**注意**  
Windows Server v2 的部署和更新功能依賴增強式運作狀態。當您將環境遷移至 v2 時，會停用增強式運作狀態。請啟用它以使用這些功能。如需詳細資訊，請參閱[啟用 Elastic Beanstalk 增強型運作狀態報告](health-enhanced-enable.md)。

### 從 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`) 來進行進階的環境自訂](ebextensions.md)。