自訂 Elastic Beanstalk 應用程式部署 - AWS 搭配 Amazon Q 的工具組

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

自訂 Elastic Beanstalk 應用程式部署

本主題介紹了彈性 Beanstalk 的 Microsoft Windows 容器的部署清單如何支持自定義應用程序部署。

自定義應用程序部署是一項強大的功能,對於那些希望利用 Elastic Beanstalk 的強大功能來創建和管理其AWS資源,但希望完全控制其應用程序的部署方式。對於自定義應用程序部署,您可以為 Elastic Beanstalk 執行的三個不同操作創建 Windows PowerShell 腳本。在啟動部署時使用安裝操作,在RestartAppServerAPI 可以從工具包或 Web 控制台調用,並在任何先前的部署中調用該 API,只要發生新部署,則會在任何先前的部署中調用該 API。

例如,您可能有一個要部署的 ASP.NET 應用程序,而您的文檔團隊編寫了他們希望包含在部署中的靜態網站。你可以通過像這樣編寫你的部署清單來做到這一點:

{ "manifestVersion": 1, "deployments": { "msDeploy": [ { "name": "app", "parameters": { "appBundle": "CoolApp.zip", "iisPath": "/" } } ], "custom": [ { "name": "PowerShellDocs", "scripts": { "install": { "file": "install.ps1" }, "restart": { "file": "restart.ps1" }, "uninstall": { "file": "uninstall.ps1" } } } ] } }

為每個操作列出的腳本必須位於相對於部署清單文件的應用程序包中。在此示例中,應用程序包還將包含一個 documentation.zip 文件,其中包含由您的文檔團隊創建的靜態網站。

所以此install.ps1腳本提取 zip 文件並設置 IIS 路徑。

Add-Type -assembly "system.io.compression.filesystem" [io.compression.zipfile]::ExtractToDirectory('./documentation.zip', 'c:\inetpub\wwwroot\documentation') powershell.exe -Command {New-WebApplication -Name documentation -PhysicalPath c:\inetpub\wwwroot\documentation -Force}

由於您的應用程序在 IIS 中運行,因此重新啟動操作將調用 IIS 重置。

iisreset /timeout:1

對於卸載腳本,清理安裝階段使用的所有設置和文件非常重要。這樣,在新版本的安裝階段,您可以避免與之前的部署發生任何衝突。對於此示例,您需要刪除靜態網站的 IIS 應用程序並刪除網站文件。

powershell.exe -Command {Remove-WebApplication -Name documentation} Remove-Item -Recurse -Force 'c:\inetpub\wwwroot\documentation'

使用這些腳本文件和應用程序包中包含的 documentation.zip 文件,部署將創建 ASP.NET 應用程序,然後部署文檔站點。

在此示例中,我們選擇了一個簡單的示例來部署一個簡單的靜態網站,但使用自定義應用程序部署,您可以部署任何類型的應用程序,並讓 Elastic Beanstalk 管理AWS為它提供資源。