typescript 如何获取自动扩展组创建的EC2示例IP?

tf7tbtn2  于 2023-03-09  发布在  TypeScript
关注(0)|答案(1)|浏览(101)

我创建了一个带有AutoScaling Group的ECS群集,如下所示:

const cluster = new ecs.Cluster (
    this,
    "ECSCluster",
    {
        clusterName: "myCluster",
        vpc: my-vpc
    }
);

const autoScalingGroup = new autoscaling.AutoScalingGroup (
    this,
    "autoScalingGroup",
    {
        autoScalingGroupName: "myAutoScalingGroup",
        vpc: my-vpc,
        instanceType: new ec2.InstanceType("t3.2xlarge"),
        ... 
    }
);

const capacityProvider = new ecs.AsgCapacityProvider (
    this,
    "capacityProvider",
    { autoScalingGroup }
);

cluster.addAsgCapacityProvider(capacityProvider);

因此,这段代码还创建了一个EC2示例,现在我想获取此示例的私有IP,以便将其作为记录添加到Route53中。
按照上面的代码,我尝试了这样的SDK:

const EC2Client = new sdk.EC2();
const params = {
    Filters: [
        {
            Name: "instance-state-name",
            Values: ["running"]
        },
        {
            Name: "tag:Name",
            Values: ["my-ecs-name"]
        }
    ]
}

const response = await EC2Client.describeInstances(params).promsie();
const privateIP = response.Reservations?.[0].Instances?.[0].PrivateIpAddress ?? "";

但是我遇到了这个错误“Cannot read properties of undefined(阅读'Instances')"。我认为这里的问题是我无法获取这个示例,因为它还没有创建。我如何等待创建,或者我可以做些什么来获取这个IP并将其添加到我的HostedZone记录中?
谢谢你的回答:)

相关问题