使用 AWS ebextensions,按照他们的文档传递一组命令的正确方法是啥?
Posted
技术标签:
【中文标题】使用 AWS ebextensions,按照他们的文档传递一组命令的正确方法是啥?【英文标题】:Using AWS ebextensions, what is the proper way to pass an array of commands per their docs?使用 AWS ebextensions,按照他们的文档传递一组命令的正确方法是什么? 【发布时间】:2016-10-04 03:52:37 【问题描述】:Docs
我正在尝试在 conainter_commands
条目中传递多个命令并不断收到错误消息。然而,当我传递与单个条目相同的命令时,它工作正常。
作品:
container_commands:
01_remove_old_dump:
command: 'rm -f /tmp/db.dump'
02_get_new_dump:
command: 'aws s3 cp s3://bucket/db.dump'
/bin/sh: rm -f /tmp/db.dump: No such file or directory.
失败
container_commands:
01_remove_old_dump:
command: ('rm -f /tmp/db.dump' 'aws s3 cp s3://bucket/db.dump')
【问题讨论】:
【参考方案1】:没关系,我只是用 YAML 块打破了行列,这很有效:
01_command:
command: |
if [[ ! $ENVIRONMENT = "PROD" ]] && [[ $RDS_HOSTNAME ]]
rm -f /tmp/db.dump
aws s3 cp s3://bucket/db.dump
pg_restore -H $RDS_HOSTNAME dbname /tmp/db.dump
echo "Refreshing database..."
else
Echo "Environment is $ENVIRONMENT. Skipping database refresh..."
fi
注意:删除了这个,它似乎不起作用(总是返回 true):
test: |
[[ ! $ENVIRONMENT = "PRODUCTION" ]] && \
[[ $RDS_HOSTNAME ]] && \
echo "Refreshing database..."
【讨论】:
谢谢!在这件事上,我一直在撞墙。他们的文档是错误的。 注意,这里的测试语法似乎不起作用。我认为它正在工作,但发现它每次都返回true
。我最终将我的命令包装在一个执行相同测试的 if 语句中。以上是关于使用 AWS ebextensions,按照他们的文档传递一组命令的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Rails 部署 AWS - .ebextensions 中的配置文件
我是不是需要 .ebextensions 才能使用 DynamoDB 或 SNS 等 AWS 资源?
AWS codeBuild 不运行 .ebextension 配置