【问题标题】:How to set environment variable for AWS CDK with Elastic Beanstalk?如何使用 Elastic Beanstalk 为 AWS CDK 设置环境变量?
【发布时间】:2020-02-05 12:12:45
【问题描述】:

我想设置一个在我的 Nodejs 应用程序中可用的环境变量,该应用程序使用 AWS CDK 部署到 Elastic Beanstalk。我尝试将其添加到 Environment 选项中,但部署卡住了几分钟,直到我手动取消堆栈更新。

根据docs from AWS,这是我尝试添加环境变量的方法:

      {
        namespace: 'aws:elasticbeanstalk:application:environment',
        optionName: 'CORS_ALLOW_ORIGIN',
        value:
          'http://my-frontend.s3-website.eu-central-1.amazonaws.com'
      }

我也尝试使用 'http...' 和 '"http..."' 添加值,但没有成功。

这是完整的脚本:

#!/usr/bin/env node
import cdk = require('@aws-cdk/core');
import ebs = require('@aws-cdk/aws-elasticbeanstalk');

export class MyPrototype extends cdk.Stack {
  public constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const appName = 'MyPrototypeApp';
    const platform = this.node.tryGetContext('platform');

    const app = new ebs.CfnApplication(this, 'Application', {
      applicationName: appName
    });

    const options: ebs.CfnEnvironment.OptionSettingProperty[] = [
      {
        namespace: 'aws:autoscaling:launchconfiguration',
        optionName: 'IamInstanceProfile',
        value: 'aws-elasticbeanstalk-ec2-role'
      },
      {
        namespace: 'aws:elasticbeanstalk:container:nodejs',
        optionName: 'NodeVersion',
        value: '10.15.0'
      },
      {
        namespace: 'aws:elasticbeanstalk:application:environment',
        optionName: 'CORS_ALLOW_ORIGIN',
        value:
          'http://my-frontend.s3-website.eu-central-1.amazonaws.com'
      }
    ];

    new ebs.CfnEnvironment(this, 'Environment', {
      environmentName: 'MyPrototypeEnvironment',
      applicationName: app.applicationName || appName,
      platformArn: platform,
      optionSettings: options
    });
  }
}

const app = new cdk.App();

new MyPrototype(app, 'ElasticBeanstalk');

app.synth();

【问题讨论】:

  • 还没有答案吗?

标签: node.js amazon-cloudformation amazon-elastic-beanstalk aws-cdk


【解决方案1】:

不知道为什么会失败,因为这是在 optionSettings 中设置 env 变量的方式,使用 'aws:elasticbeanstalk:application:environment' 作为命名空间(您也可以添加多个同名命名空间)

【讨论】:

  • 'aws:elasticbeanstalk:application:environment' 也为我工作。
猜你喜欢
  • 2015-08-05
  • 2021-04-08
  • 2017-07-21
  • 2016-12-10
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 2018-04-27
相关资源
最近更新 更多