use*_*318 2 amazon-ec2 amazon-web-services typescript aws-cdk
您好,当我尝试在 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,
});
}
}
Run Code Online (Sandbox Code Playgroud)
所以我得到下一个错误
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)
Run Code Online (Sandbox Code Playgroud)
我知道我需要将区域和帐户添加到我的堆栈中,但我不知道在哪里
如果我们仔细分析该错误,就会发现为了找到适合您的 EC2 实例的 AMI,需要设置一个区域/帐户。有几种方法可以做到这一点。
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
}});
Run Code Online (Sandbox Code Playgroud)
2)您可以在环境变量中设置它。
您需要将CDK_DEFAULT_ACCOUNT和CDK_DEFAULT_REGION分别设置为它们的值。您可以使用它,但如果您需要使用两个区域或两个帐户,则需要对它们进行硬编码。
| 归档时间: |
|
| 查看次数: |
9266 次 |
| 最近记录: |