首页 > 解决方案 > 否定等待条件

问题描述

我正在使用 aws-go-sdk,对 AWS API 执行操作。顺便说一句,我正在尝试将私有 IP 地址添加/删除到选择的 S3 实例。在向我正在使用的实例添加/删除 IP 时WaitUntilInstanceRunning,等待实例使用我分配的 IP 地址运行。使用 API,我设法写了一些类似的东西

    err := a.client.WaitUntilInstanceRunning(&ec2.DescribeInstancesInput{
        InstanceIds: []*string{instanceID},
        Filters: []*ec2.Filter{
            {
                Name:   "network-interface.addresses.private-ip-address",
                Values: ips,
            },
        },
    })

这可以很好地分配 IP。但是,当向他/她自己保证被删除的 IP 也被删除时,应该使用什么?

ec2.Filter没有在其 API 中提供“运算符” 。我的意思是,如果这是等待并验证实例是否以预期值运行的唯一方法,则否定它并确保实例以预期值运行是不可能的(因为删除之前的所有值都将存在后)。前任:

  1. “实例 1”具有 [IP1, IP2]
  2. 删除 IP2
  3. 等待“实例 1”有 [IP1]

这是 API 不执行的操作,还是等待 API 对提供的值执行相等断言?即:WaitUntilInstanceRunning当“实例1”只有IP1时返回?

标签: amazon-web-servicesamazon-ec2aws-sdk-goaws-sdk-go-v2

解决方案


推荐阅读