相关疑难解决方法(0)

如何在Amazon Elastic Beanstalk(Python)中设置环境变量

我最近一直在研究Django应用程序,试图让它与Amazon Elastic Beanstalk一起使用.

在我的.ebextensions/python.config文件中,我设置了以下内容:

option_settings:
  - namespace: aws:elasticbeanstalk:application:environment
    option_name:  ProductionBucket
    value: s3-bucket-name
  - namespace: aws:elasticbeanstalk:application:environment
    option_name:  ProductionCache
    value:  memcached-server.site.com:11211
Run Code Online (Sandbox Code Playgroud)

但是,每当我查看服务器时,都没有设置这样的环境变量(因此,当我尝试时无法访问) os.getenv('ProductionBucket')

我遇到了这个页面似乎试图记录所有命名空间.我也尝试使用PARAM1作为选项名称,但有类似的结果.

如何在Amazon Elastic Beanstalk中设置环境变量?

编辑:
我还尝试在所有其他命令之前添加命令,这些命令只会导出一个环境变量:

commands:
 01_env_vars:
  command: "source scripts/env_vars"
Run Code Online (Sandbox Code Playgroud)

......这也不成功

python environment-variables amazon-web-services amazon-elastic-beanstalk

12
推荐指数
4
解决办法
2万
查看次数

如何阅读.net中的Elastic Beanstalk环境属性?

如何从我在此处找到的AWS Elastic Beanstalk应用程序中读取环境属性:

Configuration > Software Configuration > Environment Properties
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

以下方法均不起作用:

ConfigurationManager.AppSettings["MyServiceUrl"]
ConfigurationManager.AppSettings["aws:elasticbeanstalk:application:environment.MyServiceUrl"]
Environment.GetEnvironmentVariable("MyServiceUrl")
Environment.GetEnvironmentVariable("aws:elasticbeanstalk:application:environment.MyServiceUrl")
Run Code Online (Sandbox Code Playgroud)

"完全限定"名称尝试来自AWS EB文档.

有任何想法吗?

.net asp.net amazon-web-services amazon-elastic-beanstalk

12
推荐指数
1
解决办法
2820
查看次数

将环境变量传递给Docker容器

目前使用Elastic Beanstalk运行Docker容器,我需要将重要信息作为环境变量传递给我的容器.

我目前的Dockerrun.aws.json看起来像这样:

{
    "AWSEBDockerrunVersion": "1",
    "Image": {
        "Name": "b2boost/rabbitelasticdockstash",
        "Update": "true"
    },
    "Ports": [
        {
            "ContainerPort": "80"
        }
    ],
    "environment": [
        {
            "name": "RABBITMQ_HOST",
            "value": "RABBITMQ_HOST"
        },
        {
            "name": "RABBITMQ_PASSWORD",
            "value": "RABBITMQ_PASSWORD"
        },
        {
            "name": "RABBITMQ_USER",
            "value": "RABBITMQ_USER"
        },
        {
            "name": "RABBITMQ_VHOST",
            "value": "RABBITMQ_VHOST"
        },
        {
            "name": "ELASTICSEARCH_HOST",
            "value": "ELASTICSEARCH_HOST"
        },
        {
            "name": "ELASTICSEARCH_PASSWORD",
            "value": "ELASTICSEARCH_PASSWORD"
        },
        {
            "name": "ELASTICSEARCH_PORT",
            "value": "ELASTICSEARCH_PORT"
        },
        {
            "name": "ELASTICSEARCH_PROTOCOL",
            "value": "ELASTICSEARCH_PROTOCOL"
        },
        {
            "name": "ELASTICSEARCH_USER",
            "value": "ELASTICSEARCH_USER"
        }
    ],
    "Volumes": [
    ], …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services docker amazon-elastic-beanstalk

11
推荐指数
2
解决办法
8226
查看次数

特定于环境的ebextensions命令

我有一个spring-boot应用程序,我需要指定石墨服务器和端口(发送指标).要做到这一点,我必须安装和配置statsd.我这样做是使用该ebextensions文件.

commands:
  01_nodejs_install:
    command: sudo yum -y install nodejs npm --enablerepo=epel
    ignoreErrors: true

  02_mkdir_statsd:
    command: mkdir /home/ec2-user/statsd
    ignoreErrors: true

  03_fetch_statsd:
    command: git clone https://github.com/etsy/statsd.git /home/ec2-user/statsd
    ignoreErrors: true

  04_change_example_config:
    command: "cat exampleConfig.js | sed 's/2003/<graphite-port>/g' | sed 's/graphite.example.com/<my-graphite-server>/g' > config.js"
    cwd: /home/ec2-user/statsd

  05_run_statsd:
    command: setsid node stats.js config.js >/dev/null 2>&1 < /dev/null &
    cwd: /home/ec2-user/statsd
Run Code Online (Sandbox Code Playgroud)

这种配置的问题是我可以在这里为所有环境仅指定1个石墨服务器.

所以我决定将命令04和05移入container_commands.我想定义叫做环境变量的ENV_NAME 使用魔豆控制台/ UI,并将其设置为dev,qaprod根据环境.然后我可以使用test选项container_commands仅基于此特定环境运行04和05命令ENV_NAME.

所以我的问题是 - …

java environment-variables amazon-web-services amazon-elastic-beanstalk ebextensions

10
推荐指数
2
解决办法
4297
查看次数

AWS CLI使用elasticbeanstalk创建环境创建RDS

如何使用create-environment或其他子命令创建RDS实例aws elasticbeanstalk?我尝试了几种参数组合无济于事.以下是一个例子.

APP_NAME="randall-railsapp"
aws s3api create-bucket --bucket "$APP_NAME"
APP_VERSION="$(git describe --always)"
APP_FILE="deploy-$APP_NAME-$APP_VERSION.zip"
git archive -o "$APP_FILE" HEAD
aws s3 cp "$APP_FILE" "s3://$APP_NAME/$APP_FILE"

aws --region us-east-1 elasticbeanstalk create-application-version \
--auto-create-application \
--application-name "$APP_NAME" \
--version-label "$APP_VERSION" \
--source-bundle S3Bucket="$APP_NAME",S3Key="$APP_FILE"

aws --region us-east-1 elasticbeanstalk create-environment \
--application-name "$APP_NAME" \
--version-label "$APP_VERSION" \
--environment-name "$APP_NAME-env" \
--description "randall's rails app environment" \
--solution-stack-name "64bit Amazon Linux 2014.03 v1.0.0 running Ruby 2.1 (Puma)" \
--cname-prefix "$APP_NAME-test" \
--option-settings file://test.json
Run Code Online (Sandbox Code Playgroud)

以及内容 …

amazon-web-services amazon-rds aws-cli amazon-elastic-beanstalk

7
推荐指数
1
解决办法
3017
查看次数

为什么Passenger正在寻找临时环境?

在我的Elastic Beanstalk中 - 容器选项.RACK_ENV设置为staging.

事实上,如果我SSH到EC2实例和做rails console/var/app/current/,然后键入Rails.env返回staging.

阅读http://www.modrails.com/documentation/Users指南Nginx.html#RackEnv

它表示要设置RACK_ENV变量,因为默认情况下,值为production.

你会认为一切都会有效,除了在Elastic Beanstalk日志中,它说:

[ 2013-11-18 14:28:26.4677 8061/7fb5fe01a700 Pool2/Implementation.cpp:1274 ]: [App 7428 stdout] PG::ConnectionBad (FATAL:  database "foobar_production" does not exist
Run Code Online (Sandbox Code Playgroud)

foobar_production数据库不存在,但foobar_staging确实存在.那么为什么Passenger仍然在关注生产环境,何时应该关注分期.

passenger amazon-web-services amazon-elastic-beanstalk

5
推荐指数
1
解决办法
626
查看次数

Elastic Beanstalk 环境的名称是否可用作环境属性?

了解如何在AWS Elastic Beanstalk上设置自定义环境变量,我想知道环境名称是否有默认环境属性。如果有,文档中在哪里对此进行了描述?

例如,假设我的 EB 环境名为“my_env”,是否有某种默认环境属性(例如“AWS_EB_ENV_NAME”)可供我访问以获取此名称?

environment-variables amazon-web-services amazon-elastic-beanstalk

5
推荐指数
1
解决办法
3974
查看次数

使用 CodePipeline 从多个源进行部署

我正在尝试在 AWS 上建立一个项目。我正在使用 CodePipeline 将代码部署到 Elastic Beanstalk,源代码来自 git 存储库。这很好用。

该项目有一些我不想包含在 git 存储库中的配置文件(密码和设置等)。由于它们不在 git 存储库中,因此它们不由 CodePipeline 部署。

如何将配置文件包含在 CodePipeline 中而不将它们包含在 git 存储库中?

想法:我尝试在 CodePipeline 中添加额外的 S3 源,其中包含配置文件。然后,我必须添加额外的部署操作来部署新的 S3 源。但随后这两个部署过程会发生冲突,并且只有其中一个成功。如果我重试失败的那个,成功的那个部署的任何内容都会被再次删除。似乎不可能将两个输入工件(源)添加到单个部署操作中。

amazon-web-services aws-codepipeline

5
推荐指数
1
解决办法
1579
查看次数