如何使用 AWS CDK 获取现有的 EC2 实例 ID 并将其存储到数组中

How to fetch existing EC2 instance id and store it to an array using AWS CDK

我想创建 CloudWatch CPU 使用 CDK 的 EC2 实例利用率监控,我想为每个实例创建一个警报,如果超过阈值将触发 SNS 通知。

我不想对这些实例 ID 进行硬编码,而是想直接从 AWS 获取它们并将它们保存到一个数组中。问题是我没有找到任何允许我列出所有 EC2 实例的方法。理想情况下,我想使用类似于 vpc.fromLookup 的方法,但对于 EC2,这是否存在?

您有两种选择,但这取决于您的具体用例。

如果您谈论的是在同一堆栈中创建的实例,AWS CDK ec2 Instance 类型 has a property instanceId。此实例 ID 将添加到模板中作为对相关 Instance 资源的引用,CloudFormation 将在部署时解决此问题。

如果您正在谈论创建不同的堆栈并且只想获取当前 运行 个实例,则必须使用 AWS SDK。您可以使用 the ec2.describeInstances method 查找所有实例并以这种方式获取实例 ID。