如何解决[Azure 部署]:我们可以使用 c# 按名称过滤 Azure 资源组部署吗?
我正在尝试使用 filter,其中名称以“Deploy”开头 来获取 Azure 资源组部署,但找不到关于 $filter 的任何文档。
我尝试执行以下操作:
try
{
var credentials = new ClientSecretCredential(tenantId,clientId,clientSecret);
var resourceClient = new ResourcesManagementClient(subscriptionId,credentials);
var deployments = resourceClient.Deployments;
AsyncPageable<DeploymentExtended> rgDeployments = deployments.ListByResourceGroupAsync("myRG","name eq 'Deploy-20210412184314'");
await foreach (DeploymentExtended deploymentProperties in rgDeployments)
{
Trace.WriteLine(deploymentProperties.Name);
}
}
catch(Exception e)
{
Trace.WriteLine(e.Message);
}
但它给出了错误提示 -
{"error":{"code":"InvalidProvisioningStateFilter","message":"Invalid $filter 'name eq 'Deploy-20210412184314'' specified in the query string."}}
那么我们可以只使用 provisioningState eq '{state}'
这样的过滤器而不是名称吗?
我正在使用 Azure Resources Management client library for .NET。
请参考此documentation。
解决方法
恐怕您无法将过滤器与 name eq 'Deploy-20210412184314'
一起使用,在这种情况下,如果您已经知道部署的名称并希望在资源组范围内获取它,则无需使用 {{1 }},就用这个方法DeploymentsOperations.GetAsync(String,String,CancellationToken)
,传递ListByResourceGroupAsync
和resourceGroupName
,就可以简单的获取了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。