我正在使用boto3来部署spot实例。我的请求在一段时间后过期(如我所定义)。当请求到期时,我预计机器将终止。 为了创建现场请求,我使用了这个脚本:
client = boto3.client('ec2', region_name=regions[idx][:-1])
client.request_spot_instances(
DryRun=False,
SpotPrice=price_bids,
InstanceCount=number_of_instances_to_deploy,
LaunchSpecification=
{
'ImageId': amis_id[idx],
'KeyName': 'MyKey',
'SecurityGroups': ['SG'],
'InstanceType': machine_type,
'Placement':
{
'AvailabilityZone': regions[idx],
},
},
ValidUntil=new_date,
)
如果请求无效,我该如何终止现场实例?
答案 0 :(得分:4)
在竞价型实例请求中,ValidUntil
仅确定请求处于活动状态的时间长度。在ValidUntil
时间之后,请求将过期,并且将无法完成。
但是,如果您的请求在请求到期之前完成,那么启动的EC2实例将一直运行,直到其中一个发生:
如果您希望EC2实例在出价之前终止,那么您需要自行终止它们。
答案 1 :(得分:2)
如果请求仍处于活动状态,则不会启动专色实例,因此不存在终止您的专色实例的问题。达到ValidUntil
时,您的请求将会过期。您没有指定此点请求的类型:
Type='one-time'|'persistent'
默认情况下,该值为one-time
。在这种情况下,一旦达到ValidUntil
时间,请求就会过期并删除。如果您未指定ValidUntil
,则请求将无限期生效。
ValidUntil (datetime) - 请求的结束日期。如果这是一个 一次性请求,请求在所有实例之前保持活动状态 启动,请求被取消或达到此日期。如果 请求是持久的,它一直有效,直到它被取消或这个 达到日期和时间。
默认:请求无限期有效。