如果任何实例处于活动状态或未处于活动状态,则在这两种情况下都会响应"是"



我试图检查是否有任何t4g.micro点处于活动状态。如果没有点处于活动状态,则给出响应"是">

import boto3
import json
REGION = 'us-east-1'
def lambda_to_ec2(event, context):
client = boto3.client('ec2', region_name=REGION)
spot_response = client.describe_spot_instance_requests(
Filters=[
{
'Name': 'state',
'Values': [
'active',
],
'Name': 'launch.instance-type',
'Values': [
't4g.micro',
],
},
],
)

if spot_response:    
print ("yes")
else:
print ("nooooo")

您的filter不正确,并且您错过了在代码中检查SpotInstanceRequests。以下代码应该有效:

import boto3
REGION = 'us-east-1'

def lambda_to_ec2(event, context):
client = boto3.client('ec2', region_name=REGION)
spot_response = client.describe_spot_instance_requests(
Filters=[
{
'Name': 'state',
'Values': ['active']
},
{
'Name': 'launch.instance-type',
'Values': [
't2.micro',
]
}
],
)
if spot_response['SpotInstanceRequests']:
print("yes")
else:
print("nooooo")

再次查看description_spot_instance_requests API。

最新更新