提问者:小点点

部署节点js应用程序时如何使. eb扩展工作?


我在使用elasticbeanstik部署node js应用程序时无法理解如何使用. ebExsionsions。我在五月应用程序的顶部目录中创建了一个名为01run.config的文件:

my_app:
   |-- server.js
   |-- site/(...)
   |-- node-modules
   |-- .ebextensions/01run.config

该文件包含我的AWS凭据和引用我的应用程序使用的S3包的参数。

option_settings:
  - option_name: AWS_SECRET_KEY
    value:  MY-AWS-SECRET-KEY
  - option_name: AWS_ACCESS_KEY_ID
    value: MY-AWS-KEY-ID
  - option_name: PARAM1
    value: MY-S3-BUNDLE-ID

在使用eb create部署我的应用程序后,一个. elasticbeanstik/optionsettings。创建了包含许多变量的my_app-env,其中PARAM1设置为""。凭据也不存在。我想我在某处读到.eb扩展是在启动应用程序时,所以这并不一定是坏事,我没有在选项设置中看到这些变量。my_app-env'。然而,变量没有设置,应用程序无法正常工作。我很感激任何解释。我发现官方留档有点令人困惑。


共3个答案

匿名用户

问题似乎是我没有将. eb扩展提交到git。显然,该文件是在初始化您的应用程序时读取的,因此它必须是发送到elasticbeanstatk的捆绑包的一部分。

我已经采取了使用配置文件的想法来设置身份验证密钥从亚马逊留档http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_custom_container.html.但是,我没有提交文件,因为很明显,你不应该提交你的身份验证密钥(更多关于这个讨论在这里:你如何传递自定义环境变量在亚马逊弹性豆茎(AWSEBS)?)。

我最终简化了文件以包含PARAM1选项,并在整个elasticbenastalk在线界面中传递了密钥和访问密钥id。

匿名用户

您的配置文件示例缺少命名空间。您必须为每个选项设置指定命名空间。

匿名用户

您可以在. elasticbeanstatk/optionsettings.[your-env-name]文件中传递环境选项。

您应该有一个名为[aws: elasticbeanstik:application:环境]的部分。它可能填充有PARAM1=…等。只需在此部分下添加您的环境变量。不应提交.elasticbeanstik目录中的文件。

执行eb update后,如果您转到基于Web的EBS控制台,您可以验证这些选项是否已添加。新选项应该会显示出来。我相信通过控制台添加的任何旧选项都不会被删除。