AWS非Web应用程序的部署

4
我正在研究如何将控制台应用程序和可能的Windows服务应用程序部署到AWS。我读过的所有关于CloudFormation的内容都让我觉得这是上手的方式,但我看到的所有示例都是针对 Web 应用程序的。有人知道是否可以将 CloudFormation 用于非Web应用程序吗?如果可以,有没有任何示例模板展示如何做到这一点?
3个回答

2

我最近也遇到了类似的问题。我想安装一个包含多个子包和runCommand的包装MSDeploy包。

我发现,除非传递给CloudFormation的MSDeploy包本身是iisApp包,否则AWSDeploy会失败。经过调查,发现这是因为AWSDeploy使用-setParam:“IIS Web Application Name”=“在配置中设置的值”来执行MSDeploy脚本,这就是为什么它失败的原因。

为了避免此错误并成功地使用AWSDeploy和CloudFormation安装非网站应用程序,您只需要将参数文件打包到MSDeploy包中,该文件包含此参数。

下面是一个示例文件。

<parameters>
  <parameter name="IIS Web Application Name" defaultValue="Default Web Site/" tags="isIisApp" />
</parameters>

您可以使用以下方式创建带有清单或contentPath的MSDeploy包,并传递文件。

msdeploy -verb:sync -source:contentPath=C:\ConsoleApp\ -dest:package=deploy.zip -declareParamFile=parameters.xml

如果您不需要运行站点,请务必禁用实例的健康监控,然后就可以成功地将其与CloudFormation模板一起使用了。


1

是的,您可以使用CloudFormation来创建任何类型的应用程序。您可以基于任何AMI创建实例,并且(如果使用Linux实例,请使用cloud-init在启动时安装和运行软件)。

创建自己的预安装软件的AMI并使用CloudFormation启动基于该AMI的实例也很容易。

CloudFormation没有特定于Web应用程序的功能;它只是一种描述一组AWS资源的方式。


1

为什么不使用Windows Server EC2实例?CloudFormation只是一种管理云资源的方式,但您仍然在使用EC2实例(这是可用资源之一)。

在单个实例中,您可以部署控制台应用程序和Windows服务。

更新:您可以使用文章中的信息从当前帐户中的资源生成CloudFormation模板。这样,您可以手动设置它,然后生成模板。

希望这有所帮助。


我想这就是我的问题,我看到的所有示例都是将asp.net应用程序推送到EC2,但没有一个是针对推送控制台应用程序的。所以根据您的回答,我是否可以正确地认为我可以通过某种方式配置CloudFormation来推送控制台应用程序? - Chris Dellinger
@ChrisDellinger - 我的意思是,除非你想组织复杂的部署,否则你不需要使用CloudFormation。如果只是单个实例,我认为使用CloudFormation过于繁琐,但如果你真的想要,我想你可以使用它,不过我以前没有这样做过。我会更新我的答案,并提供一种方法... - AJC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接