在Azure中删除vm时,我得到的最后一个状态是“正在删除”,而且在provisioningState字段中也是如此。如何获得'已删除'状态?

时间:2017-02-04 20:41:58

标签: azure azure-resource-manager azure-api-management azure-java-sdk azure-resource-group

我使用Java api(azure-compute:版本0.9.0)来执行VM操作。我想确保VM上的云操作成功执行。我在删除操作中遇到了一些问题。

  • 在开始删除(异步)VM时,我得到了Future和 一旦得到响应,DeleteOperationResponse中的状态就是错误 在未来完成之后。
  • 稍后提交beginDeleting(async)后,我从VMGetResponse获取VM,然后每隔1秒检查一次provisioningState。在几次'删除'之后,我得到'错误'状态。

我的期望是即使在终止实例后获取VM对象,其状态为Deleted(或终止),因为我在亚马逊中获得。这样我就能确信我的云操作是成功的。

1 个答案:

答案 0 :(得分:1)

Azure SDK for Java的任何API调用都实际上调用了相关的Azure REST API。所以根据REST API的引用Delete a virtual machine& Get information about a virtual machine,您只能获得来自响应Background状态代码的错误状态,如下所示,因为该资源已被删除。

  1. 引用TextBlock Response的说明。

      

    如果资源不存在,则返回404(NotFound)。

  2. 引用Red Response的说明。

      

    否则返回404(未找到)。

  3. 对于评论中的问题,如果您想获取最后<ComboBox x:Name="cbo" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},Path=DataContext.ColumnOptions}" SelectionChanged="cbo_SelectionChanged"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock x:Name="txt" Text="{Binding Name}"/> <DataTemplate.Triggers> <DataTrigger Binding="{Binding Path=SelectedItem.IsDuplicate, RelativeSource={RelativeSource AncestorType=ComboBox}}" Value="True"> <Setter TargetName="txt" Property="Background" Value="Red"/> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> 个日志,唯一的方法是使用Azure Monitor REST API in Java。在Azure Offical网站上,您可以参考以下文档来了解Azure Monitor服务。

    1. Audit Logs in Azure Preview Portal
    2. Get started with Azure Monitor
    3. View events and activity logs