4

我正在寻找将控制台应用程序和可能的 Windows 服务应用程序部署到 AWS 的最佳方法。我读过的关于 CloudFormation 的所有内容听起来都像是要走的路,但我看到的所有示例都是针对 Web 应用程序的。有谁知道是否可以将 CloudFormation 用于非 Web 应用程序?如果是这样,是否有人知道显示它是如何完成的示例模板?

4

3 回答 3

2

我最近有一个类似的问题。我实际上是在尝试安装一个包装器 MSDeploy 包,其中包含多个子包和一个 runCommand 来安装它们。

我发现 AWSDeploy 会失败,除非传递给 CloudFormation 的 MSDeploy 包本身就是一个 iisApp 包。经过调查,事实证明这是因为 AWSDeploy 使用 -setParam:"IIS Web Application Name"="value set in config" 执行 MSDeploy 脚本,这就是它失败的原因。

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

这是一个示例文件。

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

然后,您可以使用 manifest 或 contentPath 创建一个 MSDeploy 包,如下所示传入文件。

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

然后,您可以成功地将其与您的 CloudFormation 模板一起使用。如果不运行站点,请不要忘记禁用实例的运行状况监控。

于 2013-02-02T22:10:37.237 回答
1

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

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

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

希望这可以帮助

于 2011-10-07T20:35:51.850 回答
1

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

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

CloudFormation 没有什么特别的网络应用程序;它只是描述一组 AWS 资源的一种方式。

于 2012-05-04T07:16:49.980 回答