如何使用dotnet SDK删除Azure中的单个资源?

时间:2018-07-06 20:14:37

标签: azure azure-resource-manager

我一直在尝试使用DeleteById,但是从我所看到的所有示例中,似乎都需要知道要删除哪种类型的资源才能使用此方法。

这就是我一直在尝试的方式,但是我收到错误信息“ IResourcesOperations”不包含“ DeleteById”的定义,并且最佳扩展方法重载了“ PolicyAssignmentsOperationsExtensions.DeleteById(IPolicyAssignmentsOperations,string)”需要接收者类型为“ IPolicyAssignmentsOperations”。

var resourceManagementClient = new 
ResourceManagementClient(TokenCredentials){
        SubscriptionId = AzureSubscriptionId
};

resourceManagementClient.Resources.DeleteById("idhere");

尝试使用Delete方法时,我遇到了同样的错误。

是否可以在不知道资源类型的情况下删除单个资源?例如,您是否可以通过了解ID和资源组或类似内容来删除资源?

2 个答案:

答案 0 :(得分:0)

  

您可以通过了解ID和资源组或类似内容来删除资源吗?

是的,我们可以删除具有已知ID的单个资源。

请尝试使用以下代码。

resourceManagementClient.Resources.DeleteById("resourceId", "Apiversion");

将WebApp用作实例-resourceId格式:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Web/sites/{name}

Api vesrion:2018-02-01

我们可以从delete resource API那里获得Api版本

DELETE https://management.azure.com/{resourceId}?api-version=2018-02-01

Packages.config

<packages>
  <package id="Microsoft.Azure.Management.ResourceManager" version="1.9.0-preview" targetFramework="net471" />
  <package id="Microsoft.Rest.ClientRuntime" version="2.3.11" targetFramework="net471" />
  <package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.12" targetFramework="net471" />
  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net471" />
</packages>

答案 1 :(得分:0)

您的资源名称应包括资源的完全限定ID,包括资源名称和资源类型。使用以下格式,/ subscriptions / {guid} / resourceGroups / {resource-group-name} / {resource-provider-namespace} / {resource-type} / {resource-name}

请参阅以下内容- https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.resourcemanager.resourcesoperationsextensions.deletebyid?view=azure-dotnet