在AWS中,所有没有标记";os";具有值";linux";应该在该地区关闭吗?。
有人能帮忙做这个吗。我试过了,但没能实现。
我发现了停止带有特定标记的实例的可能性,但无法创建lambda函数来停止没有特定标记和值的ec2实例。
您能获得所有实例的列表,然后对它们进行迭代,如果它们有标记,则拒绝终止吗?在Python中,类似于:
import boto3
def has_tag(instance):
# check if instance has tag
client = boto3.client('ec2')
response = client.describe_instances(
Filters=[
...
],
...
)
for instance in response['Reservations']['Instances']:
if not has_tag(instance):
#terminate instance
您可以使用资源组标记API来获取没有该值的资源列表。
这将使您获得所有EC2实例的ARN的列表;linux";作为任何标签的值:
aws resourcegroupstaggingapi get-resources --resource-type-filters ec2:instance --query 'ResourceTagMappingList[?!(Tags[?Value==`linux`])].ResourceARN'
假设";linux";是仅用于";os";标记来过滤掉标记没有该值的任何资源,但您可以根据需要调整JMESPath查询。