代码之家  ›  专栏  ›  技术社区  ›  Red Riding Hood

azure.ContainerGroups.ListByResourceGroup引发资源未找到异常

  •  0
  • Red Riding Hood  · 技术社区  · 6 年前

    当使用 Microsoft.Azure.Management.ResourceManager.Fluent 要枚举资源组中的容器的库:

    azure.ContainerGroups.ListByResourceGroup(resouceGroup)

    返回枚举器,但执行任何操作(例如。 .ToList() )枚举器将抛出:

    Exception thrown: 'Microsoft.Rest.Azure.CloudException' in System.Private.CoreLib.dll The Resource 'Microsoft.ContainerInstance/containerGroups/myResource' under resource group 'myResourceGroup' was not found.

    1 回复  |  直到 6 年前
        1
  •  1
  •   Red Riding Hood    6 年前

    我通过重建枚举器解决了这个问题,因为它抛出了 MoveNext() 操作。但是枚举器迭代器仍然会增加,从而有效地跳过丢失的资源。

        private static List<IContainerGroup> getContainerInstances(IAzure azure, string resouceGroup)
        {
            var brokenEnumerator = azure.ContainerGroups.ListByResourceGroup(resouceGroup).GetEnumerator();
            var containerInstances = new List<IContainerGroup>();
    
            while (true)
            {
                try
                {
                    if (!brokenEnumerator.MoveNext())
                    {
                        break;
                    }
                    containerInstances.Add(brokenEnumerator.Current);
                }
                catch (CloudException)
                {
                    // noop
                }
            }
    
            return containerInstances;
        }