【问题标题】:DependencyViolation occurred when I delete subnet after terminate instance using aws-sdk使用 aws-sdk 终止实例后删除子网时发生 DependencyViolation
【发布时间】:2019-12-14 21:29:42
【问题描述】:

我使用 AWS-SDK PHP 控制 AWS 环境。 当我删除所有测试环境时,问题就出现了。

我阅读了document,并且我已经知道如果我在目标子网中有正在运行的实例,就会发生DependencyViolation

所以我先终止了正在运行的实例,然后我尝试删除子网,但出现DependencyViolation错误。

我使用这段代码尝试了这些序列。

<?php
$options = [
    /**
     * information about region, version ..
     */
];
$client = new Ec2Client($options);

$promise = $client->terminateInstancesAsync([
    'InstanceIds' => ['instance-id'],
])->then(function ($result) use ($client) {
    return $client->deleteSubnetAsync([
        'SubnetId' => 'subnet-id',
    ]);
});

我猜错误的原因是“实例没有完全终止,但删除子网操作正在运行”。

但我不知道在没有DependencyViolation 的情况下删除子网该怎么办。

【问题讨论】:

    标签: php amazon-web-services aws-sdk aws-php-sdk


    【解决方案1】:

    我可以在使用terminateInstnaces 方法之后使用deleteSubnet 方法,而使用Waiters 没有任何错误。

    我使用了这些代码。

    $promise = $client->terminateInstancesAsync([
        'InstanceIds' => ['instance-id'],
    ])->then(function ($result) use ($client) {
        $client->waitUntil('InstanceTerminated', [
            'InstanceIds' => ['instance-id'],
        ]);
        return $client->deleteSubnetAsync([
            'SubnetId' => 'subnet-id',
        ]);
    });
    

    【讨论】:

      猜你喜欢
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 2023-03-13
      • 2018-11-07
      • 1970-01-01
      • 2016-05-27
      • 2013-01-23
      相关资源
      最近更新 更多