如何通过脚本模拟AWS Toolkit for Visual Studio中的构建和部署功能

本文关键字:构建 功能 部署 Studio Visual 脚本 何通过 模拟 AWS for Toolkit | 更新日期: 2023-09-27 18:22:11

我有一个包含多个不同项目的.NET解决方案。我现在已经通过AWS Toolkit设置了每一个,这样我就可以右键单击并点击"重新部署到AWS…",但我想做的是创建一个脚本(可能是PowerShell?),自动构建和部署我的所有项目。

我知道AWS Toolkit有一个CLI版本,名为awsdeploy.exe,但它似乎不会像AWS Toolkit插件那样执行项目的编译和归档。

我该如何模仿这种行为?

如何通过脚本模拟AWS Toolkit for Visual Studio中的构建和部署功能

所以我目前正在工作中解决这个问题,并取得了部分成功。我发现,您可以使用msbuild进行打包,然后使用awsdeploy进行部署。

例如,如果我有一个名为bas的visual studio解决方案,有两个项目,foo和bar,并且我想部署bar,那么我首先用msbuild封装bar。

msbuild-bar/bar.csproj/t:包/p:包位置=barPackage.zip

这应该在bar目录下创建一个名为barPackage.zip的包。如果您没有找到它,请查看msbuild输出,因为它应该让您知道它是在哪里创建的。

既然我们有了这个包,我们就可以部署了。Awsdeploy需要一个配置文件。它只是一个包含形式为"key=value"的键值对的文件。在名为Samples''的目录中有一个示例文件,该目录与awsdeploy.exe所在的目录相同。

如果您使用的是visualstudio,则可以选择在部署到aws时创建配置文件。

更多信息:http://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/tkv-deployment-tool.html#deployment-工具配置文件格式

假设我们有一个名为deployConfig.txt的配置文件,那么我们可以像一样调用awsdeply

awsdeply/r deployConfig.txt

请注意,/r用于重新部署。这假设您已经有一个环境在运行。

如果你不想把凭证放在文件里,你也可以这样做。

awsdeply/r/DAWSAccessKey=stuff/DAWSecretKey=stuff deployCon

通常,我们可以在命令中指定文件中不需要的任何内容,比如添加/Dsomething=stuff。正如您在上面看到的,指定AWSSecretKey我们做/DAWSecretKey=stuff。

visual studio生成的文件没有列出包的位置,所以我一直在做的是

awsdeply/r/DAWSAccessKey=stuff/DAWSecretKey=stuff/DDeploymentPackage=bar.bar.zip部署配置.txt

这几乎对我有效。但遗憾的是,它并没有完全奏效。它部署了包,我可以看到环境试图加载它,但在某个时刻失败了。我不知道为什么加载失败。当我从visualstudio部署它时,它加载得很好。

这就是我们处理它的方式。所有这些都在我们的CI服务器上运行:

步骤1-使用msbuild:构建web部署包

msbuild-website.csproj/t:WebPublish/p:WebPublishMethod=包/p: DesktopBuildPackageLocation=website.zip/p:配置=发布/p: DeployIisAppPath="默认网站"

步骤2-使用awsdeploy:进行部署

awsdeploy.exe/DAWSAccessKey=****/DAWSecretKey=****/r config.txt

config.txt:

DeploymentPackage = .'website.zip 
AWSProfileName = ****** 
Region = us-east-1 
Template = ElasticBeanstalk 
UploadBucket = ***********
Application.Name = *********** 
Environment.Name = ***********