是否可以在预定时间进行“eb 部署”?

Posted

技术标签:

【中文标题】是否可以在预定时间进行“eb 部署”?【英文标题】:Is it possible to `eb deploy` at a scheduled time? 【发布时间】:2020-09-11 03:29:36 【问题描述】:

有时我希望能够运行类似的东西:

eb deploy --scheduled-for=02:00:00

当我想在工作时间之外进行低风险部署时。我可以从docs 看到上述选项不可用。但我想知道这种目的的最佳等价物。

我知道 Elastic Beanstalk 支持使用负载均衡器和多个 EC2 实例进行蓝绿部署,尽管我目前只为一个 EC2 实例付费并且希望暂时保持这种状态。

我所有的客户都是澳大利亚人,所以通宵部署通常就足以满足我的目的。

谢谢。

【问题讨论】:

【参考方案1】:

假设您使用的是本地 Linux 工作站(未在问题中指定),您可以使用 at:

 echo "eb deploy" | at -m 02:00

关于at 的一些基本信息是here。关于使用at 要考虑的一件事是得到它outputs。因此,您可以将其输出保存在文件中:

 echo "eb deploy > /tmp/deploy_output" | at -m 02:00 

要定期执行命令,您可以使用cron

【讨论】:

我喜欢这个解决方案。我在 MacOS 上。我看不到命令​​的输出。我正在使用echo "echo 'hello' > temptemp" | at -m now 甚至echo "echo 'hello' > temptemp" | at -m now + 1 minute 进行测试。起初我需要通过 System Preferences -> Security & Privacy -> Privacy -> Full Disk Access 给 iTerm2“全盘访问”,这每次都会停止权限检查。但是无论我是否事先创建了输出文件,我仍然没有得到temptemp/tmp/deploy_output 的输出。我已经确认我可以在atq 中看到这份工作。有任何想法吗?我不确定它是否正在执行。 @stwr667 不确定 mac,但在 linux 上必须启动并启用 at 服务。顺便说一句,刚刚测试了echo "echo 'hello' > temptemp" | at -m now,这适用于我在 Linux 上。 嗯,好的,现在知道了。 unix.stackexchange.com/a/478840 在这里是一个有用的答案。 TL;DR 我还必须运行sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist 以启用atrun 实用程序,然后也提供/usr/libexec/atrun 全磁盘访问权限,就像我在上面的评论中描述的那样。 @stwr667 感谢您告诉我。很高兴它成功了。

以上是关于是否可以在预定时间进行“eb 部署”?的主要内容,如果未能解决你的问题,请参考以下文章

检测自然文本中的(预定义)主题

是否可以在 Adob​​e Reader 中以预定义的放大倍率打开 PDF 文件?

Flutter 拖拽可以有动态端点吗?还是只是一个预定义的目标?

Webtorrent - 如何从 .t​​orrent 文件的预定义 URL 流式传输

PHP预定义接口一:Traversable

如何在 plist 中添加预定义值?