Azure SDK中的哪个Java API可以删除NetworkSecurityRule?

2020年8月1日 16点热度 0条评论

我无法从Azure SDK中找到Java API来删除NetworkSecurityRule资源。

REST API已记录在here中。

我使用以下Maven依赖项:com.microsoft.azure:azure-mgmt-network:jar:1.31.0

在我的代码中,我拥有对NetworkManager实例的引用,并且具有NetworkSecurityRule对象的集合。

有人知道怎么做吗?

谢谢,
克里斯

解决方案如下:

根据我的测试,我们可以使用以下代码。有关更多详细信息,请参阅docuemnt
1.创建一个服务主体,并为sp分配Reader角色。

az login
az account set --subscription "<your subscription id>"
# it will assign  Contributor to the sp at subscription level
az ad sp create-for-rbac -n "mysample" --role  Contributor

public static void main(String[] args){
 String clientId = "your sp appId";
       String secret = "your sp password";
       String domain = "your tenant domain";
       ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(clientId, domain, secret,
            AzureEnvironment.AZURE);
       Azure azure = AzureAzure.configure().withLogLevel(LogLevel.BASIC).authenticate(credentials)
            .withDefaultSubscription();

       NetworkSecurityGroup group = azure.networkSecurityGroups().getById(
            "your nsg resource id");

       for(String i : group.securityRules().keySet()){

            System.out.println(i);

       } 

       group.update().withoutRule.apply();
       group = azure.networkSecurityGroups().getById(
            "/subscriptions/e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68/resourceGroups/testgroup/providers/Microsoft.Network/networkSecurityGroups/test0123");
       System.out.println(group.Name());
       for(String i : group.securityRules().keySet()){

            System.out.println(i);

       } 
}