使用 aws-sdk 终止实例后删除子网时发生依赖关系冲突



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

我阅读了该文档,并且我已经知道如果我在目标子网中有正在运行的实例,则会发生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的情况下删除子网该怎么做。

使用该方法后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',
]);
});

最新更新