如何在ASP.NET应用程序中使用C#代码将标记添加到azure资源。 我正在尝试创建一个azure标签管理门户。
我发现了这个question,但它是关于向资源组添加标记。该库似乎已被弃用。如果有人知道如何将标签附加到资源,请帮助。
注意:(i)我尝试了Azure ServiceManagement API,但我发现没有API支持将标记附加到资源。 (ii)如果没有其他方法可行,powershell Cmdlet是否可行?
答案 0 :(得分:2)
请按照此链接以AD和服务原则创建客户端应用程序。记下tenantId,ClientId和ClientKey
查找资源,添加/更新标签并对其进行修补。
var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientKey);
var resourceClient = new ResourceManagementClient(serviceCreds);
resourceClient.SubscriptionId = subscriptionId;
GenericResource genericResource = resourceClient.Resources.Get("some-resource-group", "Microsoft.DocumentDB", "", "databaseAccounts", "some-resource", "2016-03-31");
genericResource.Tags.Add("Version", "1.0");
resourceClient.Resources.CreateOrUpdate("some-resource-group", "Microsoft.DocumentDB", "", "databaseAccounts", "some-resource", "2016-03-31", genericResource);
答案 1 :(得分:1)
PowerShell可以轻松完成此操作,您可以使用以下命令:
PS C:\> Set-AzureRmResource -Tag @( @{ Name="tag_name"; Value="tag_value" }) -ResourceId <resource_id>
查看this article了解详情。
答案 2 :(得分:1)
如果有人对通过REST API尝试的方式感兴趣, 我在使用Fiddler监视powershell绑定流量后发现了这个。请注意标记为json-payload。
<强> https://management.azure.com/subscriptions/ {订阅-ID} / resourceGroups / {资源基团的名称} /providers/Microsoft.Compute/virtualMachines/ {VM-名称} 强>
PATCH **https://management.azure.com/subscriptions/6dcd{subscrID}e8f/resourceGroups/css-dev/providers/Microsoft.Sql/servers/css-development/databases/css-dev?api-version=2014-04-01 HTTP/1.1**
Authorization: Bearer sDSEsiJKV1QiLCJhbG[<PARTIALLY REMOVED BY KIRAN FOR SECURITY REASON>]XDvZBJG5Jhh0rivehvDS
User-Agent: AzurePowershell/v1.0.0.0
ParameterSetName: Resource that resides at the subscription level.
CommandName: Set-AzureRmResource
Content-Type: application/json; charset=utf-8
Host: management.azure.com
Content-Length: 52
Expect: 100-continue
Connection: Keep-Alive
**{
"tags": {
"displayName": "AzureV1"
}
}**