1

有人知道 SSM 可用的服务员类型吗?BOTO3 文档缺少一节。它说“见服务员部分”,但没有这样的部分。

在线搜索并没有太大帮助,因为它根本不是一个常见的话题。

4

3 回答 3

1

您可以按如下方式验证这一点:

ssm = boto3.client('ssm')

print(ssm.waiter_names) 

这将打印出空数组:

[]

为了比较,对于ec2

ec2 = boto3.client('ec2')

print(ec2.waiter_names)

将给出(未全部显示):

['export_task_completed',
 'image_available',
 'image_exists',
 'instance_exists',
 'instance_running',
 'instance_status_ok',
 'instance_stopped',
 'subnet_available',
 'system_status_ok',
 'volume_available',
 'volume_deleted',
 'volume_in_use',
 'vpc_available',
 'vpc_exists',
 'vpc_peering_connection_deleted',
 'vpc_peering_connection_exists',
 'vpn_connection_available',
 'vpn_connection_deleted']

get_waiter方法可能是从某个父类继承的。

于 2020-06-19T00:02:05.007 回答
0

这是您可以尝试的本土服务员:

def send_command_wait_for_succes(commandid, instanceid):
    '''wait for success status, or end after 2 minutes'''
    cnt = 0
    while True:
        response = ssm_client.get_command_invocation(
            CommandId=commandid,
            InstanceId=instanceid)
        if response['Status'] != 'Success':
             time.sleep(5)
             cnt = cnt + 1
             if cnt == 24:
                return False
                break
        else:
            return True
            break

print(send_command_wait_for_succes(commandid, instanceid))
于 2020-10-16T20:56:33.417 回答
0

目前只有一个command_executed服务员。

boto3 文档

import boto3

client = boto3.client('ssm')
waiter = client.get_waiter('command_executed')
waiter.wait(
    CommandId='string',
    InstanceId='string',
    PluginName='string',
    WaiterConfig={
        'Delay': 123,
        'MaxAttempts': 123
    }
)
于 2021-11-04T23:16:35.993 回答