Amazon ElasticBeanstalk:使用换行符配置环境变量

Posted

技术标签:

【中文标题】Amazon ElasticBeanstalk:使用换行符配置环境变量【英文标题】:Amazon ElasticBeanstalk: configure environment variable with newlines 【发布时间】:2013-11-13 13:28:06 【问题描述】:

我想使用 ElasticBeanstalk(例如 RSA 私钥)向我的应用程序添加带有换行符的环境变量。为此,我有以下表格:

还有 AWS CLI。

【问题讨论】:

添加该环境变量后会发生什么? @AndreyMyatlyuk 应用程序重新启动。我通过在环境变量中为带有换行符的文件提供路径来解决这个问题。 【参考方案1】:

我不想在我的构建中添加密钥文件,因为我们是从 git 构建的,版本控制中的密钥可能会带来安全隐患,所以我改用了这个解决方法:

# From your shell: Base64 encode the RSA private key file
# -w 0 disables wrapping, we don't want new lines
base64 -w 0 id_rsa

Base64 编码数据没有换行符,因此您可以将输出直接用作 ElasticBeanstalk 环境变量。然后,您可以在应用程序中使用此变量,如下所示:

# From the shell
echo "$SSH_PRIVATE_KEY" | base64 --decode - > .ssh/id_rsa
# Or just decode it with some other programming language of your choice

这样,您不必将要引用的文件包含在构建中,但您可以将密钥完全包含在环境变量中。

【讨论】:

您是如何让 Elastic Beanstalk 添加$SSH_PRIVATE_KEY 的?太长了所以我得到Service:AmazonCloudFormation, Message:Template format error: Parameter 'EnvironmentVariables' default value ...

以上是关于Amazon ElasticBeanstalk:使用换行符配置环境变量的主要内容,如果未能解决你的问题,请参考以下文章

Amazon ElasticBeanstalk 上的 Ruby on Rails 部署:签名过期错误

Amazon ElasticBeanstalk:使用换行符配置环境变量

是否可以在 Amazon elasticbeanstalk 上启动特权 docker 容器?

413 请求实体在 Nginx 和 Amazon ElasticBeanstalk 中太大

_imagingft c 模块未安装 amazon linux elasticbeanstalk

在 Amazon Elasticbeanstalk 中运行 netty 应用程序