node.js - 如何使用 Elastic Beanstalk 设置 AWS CDK 的环境变量?

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

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

这是我尝试添加环境变量的方法,根据 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();

最佳答案

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

关于node.js - 如何使用 Elastic Beanstalk 设置 AWS CDK 的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58282423/

相关文章:

node.js - Node js MySQL 连接问题

javascript - 与域在同一台计算机上运行的 NODEJS 服务器的 CORS 错误

swagger - AWS Cloudformation - 无法从嵌套堆栈引用 Swagger 中的资源

node.js - 异步队列永远不会随机触发耗尽

node.js - 在 Angular4 中获取当前日期

amazon-web-services - 尝试使用 SNS 和 SQS 创建云形成模板,但消息从未到达

amazon-web-services - Cloudwatch仪表板主体的Cloudformation子功能

laravel - Laravel Elastic BeanStalk 上的 404

amazon-web-services - 如果它在 ec2 实例中运行,如何检查我的 Elasticsearch 是否启动

elasticsearch - 需要帮助在Elasticsearch中将通配符搜索与范围查询结合起来吗?