2

我目前正在使用 AWS ElasticBeanStalk,我很好奇它是如何(在内部)知道当你启动一个实例时(或者它会自动进行扩展)来解压缩我作为版本上传的 zip?是否有一些环境设置可以在我的 S3 存储桶中查找我的 zip,然后为在该环境中运行的每个实例自动解包?

如果是这样,这是否也可以用于自动化任务,例如在启动时运行 SQL 查询(实例部署)?这些自动化任务是否可以更改或完全可见?

谢谢

4

2 回答 2

1

我不知道 beanstalk 如何知道要下载和解包哪个版本,但是在启动时运行任务是微不足道的。查看cloud-init,这是一个由 Ubuntu 编写的工具,现在已打包在 Amazon Linux 中。它允许您将任意 shell 脚本传递到实例配置的 UserData 部分,这些 shell 脚本将在启动时运行。

这是在启动时引导实例的好方法,它避免了管理 AMI 的痛苦。

一个快速(可能不适用)的警告:如果您在 beantalk AMI 上的数据库上运行 SQL 查询,您几乎可以保证在某些时候丢失您的数据库。这些机器被设计为完全瞬态的。不要在它们上面放置数据库。有关更多详细信息,请参阅此答案。

于 2012-07-27T10:13:30.553 回答
0

由于您的目标似乎是运行自定义配置任务,答案是肯定的,有办法做到这一点。您可以在与您的应用程序一起打包的 .ebextensions 文件中定义自定义操作。例如,您可以配置一个命令以在每次部署新机器时运行:http: //docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-commands

于 2016-01-21T04:28:09.280 回答