Невозможно получить значение от поставщика контекста ami, так как учетная запись / регион не указаны на уровне стека - PullRequest
0 голосов
/ 29 января 2020

Здравствуйте, у меня проблемы при попытке создать стек на AWS CDK

    import * as cdk from '@aws-cdk/core';
    import ec2 = require('@aws-cdk/aws-ec2');
    import { SubnetType } from '@aws-cdk/aws-ec2';

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

        const natGatewayProvider = ec2.NatProvider.instance({
          instanceType: new ec2.InstanceType('t3.micro')
        });

        const vpc = new ec2.Vpc(this, 'VPC_Test', {
          cidr: '10.0.0.0/26',
          maxAzs: 1,
          subnetConfiguration:[
            {
              subnetType: ec2.SubnetType.PUBLIC,
              name: 'Ingress',
              cidrMask: 28
            },
            {
              cidrMask: 28,
              name: 'Application',
              subnetType: ec2.SubnetType.PRIVATE
            }
          ],
          natGatewayProvider,
          natGateways:2,
        });
      }
    }

Итак, я получаю следующую ошибку

    Cannot retrieve value from context provider ami since account/region are not specified at the stack level. Either configure "env" with explicit account and region when you define your stack, or use the environment variables "CDK_DEFAULT_ACCOUNT" and "CDK_DEFAULT_REGION" to inherit environment information from the CLI (not recommended for production stacks)

Я знаю, что мне нужно добавить регион и счет в мой стек, но я не знаю, где

1 Ответ

2 голосов
/ 29 января 2020

Если мы выберем ошибку, то это будет означать, что для определения правильных AMI для ваших экземпляров EC2 необходимо установить регион / учетную запись. Есть несколько способов сделать это.

1) Рекомендуется Задайте информацию при создании экземпляра стека

В вашем файле index.ts вы найдете new FirstDemoStack(...) звонок. Вы должны изменить его, чтобы включить некоторые переменные среды. Здесь вы можете установить свою учетную запись и регион.

new FirstDemoStack(app, 'first-demo-stack', { env: {
  account: 'your-account-number',
  region: 'us-east-1' // or whatever region you use
}});

2) Вы можете установить его в переменных среды.

Вам необходимо установить CDK_DEFAULT_ACCOUNT и CDK_DEFAULT_REGION в их соответствующие значения. Вы можете использовать это, но если вам когда-либо понадобится использовать два региона или две учетные записи, вам нужно будет жестко их кодировать.

...