无法使用 PowerShell 在 Azure SQL 数据库上设置标记
Can't set a tag on an Azure SQL Database using PowerShell
您可以使用 Set-AzureResource 在网站等 Azure 资源上设置标签:
Set-AzureResource -Name [site name] -ResourceGroupName [resource group name] -ResourceType Microsoft.Web/sites -ApiVersion 2014-04-01 -Tags @{ Name = [my tag name]; Value = [my tag value] }
但无论我尝试什么,我都无法在 Azure SQL 数据库上运行它。事实上,我什至无法 select 资源 - 这就是我正在尝试的:
Get-AzureResource -Name TroyPSTestDB -ResourceGroupName Default-SQL-WestUS -ResourceType Microsoft.Sql/servers -ApiVersion 2014-04-01
我总是 "Provided resource does not exist"。但是,当我 select 所有数据库时我可以看到资源:
Get-AzureResource -ResourceGroupName Default-SQL-WestUS -ResourceType Microsoft.Sql/servers/databases
这给了我:
Name : TroyPSTestDB
ResourceGroupName : Default-SQL-WestUS
ResourceType : Microsoft.Sql/servers/databases
ParentResource : servers/snyb5o1pxk
Location : westus
Permissions :
Actions NotActions
======= ==========
*
ResourceId : /subscriptions/62e2a1e5-4eda-4c1e-805e-44a6c8f8afbd/resourceGroups/Default-SQL-WestUS/providers/Microsoft.Sql/servers/snyb5o1pxk/databases/TroyPSTestDB
那么是什么原因呢? PS 命令有问题吗?或者你能不能这样 select 一个数据库?有没有其他方法可以在上面贴上标签?谢谢!
更新:与其说是一个错误,不如说是对提供的参数的误解:
Get-AzureResource -Name {dbname} -ParentResource servers/{servername} -ResourceType Microsoft.Sql/servers/databases -ResourceGroupName {resource-group-name} -ApiVersion 2014-04-01
关键是在 -ParentResource 参数中包含“servers/”。
因此,要设置标签,您需要确保正确设置 -ParentResource - 您的其余参数都是正确的。
===
您可以通过新门户添加标签。管理这个的 Powershell 东西看起来有一个错误。
在门户中:/subscriptions/GUID/resourceGroups/Default-SQL-WestUS/providers/Microsoft.Sql/servers/{servername}/databases/{database}?api-version=2014-04-01
在PS中:/subscriptions/GUID/resourcegroups/Default-SQL-WestUS/providers/Microsoft.Sql/{servername}/databases/{database}?api-version=2014-04-01
(注意 PS 命令中缺少服务器节点)。
使用 AzureRM.Resources 3.0.1,您可以使用以下语法在 Sql 数据库上设置标签:
Set-AzureRmResource -ResourceType 'Microsoft.Sql/servers/databases' -ResourceName "$sqlServerName/$sqlDatabaseName" -ResourceGroupName $ressourceGroupName -Tag @{ env = "dev" }
实际上,Get-AzureRmResource
返回的 Sql 数据库资源的名称已经具有 server/database
.
格式
您可以使用 Set-AzureResource 在网站等 Azure 资源上设置标签:
Set-AzureResource -Name [site name] -ResourceGroupName [resource group name] -ResourceType Microsoft.Web/sites -ApiVersion 2014-04-01 -Tags @{ Name = [my tag name]; Value = [my tag value] }
但无论我尝试什么,我都无法在 Azure SQL 数据库上运行它。事实上,我什至无法 select 资源 - 这就是我正在尝试的:
Get-AzureResource -Name TroyPSTestDB -ResourceGroupName Default-SQL-WestUS -ResourceType Microsoft.Sql/servers -ApiVersion 2014-04-01
我总是 "Provided resource does not exist"。但是,当我 select 所有数据库时我可以看到资源:
Get-AzureResource -ResourceGroupName Default-SQL-WestUS -ResourceType Microsoft.Sql/servers/databases
这给了我:
Name : TroyPSTestDB
ResourceGroupName : Default-SQL-WestUS
ResourceType : Microsoft.Sql/servers/databases
ParentResource : servers/snyb5o1pxk
Location : westus
Permissions :
Actions NotActions
======= ==========
*
ResourceId : /subscriptions/62e2a1e5-4eda-4c1e-805e-44a6c8f8afbd/resourceGroups/Default-SQL-WestUS/providers/Microsoft.Sql/servers/snyb5o1pxk/databases/TroyPSTestDB
那么是什么原因呢? PS 命令有问题吗?或者你能不能这样 select 一个数据库?有没有其他方法可以在上面贴上标签?谢谢!
更新:与其说是一个错误,不如说是对提供的参数的误解:
Get-AzureResource -Name {dbname} -ParentResource servers/{servername} -ResourceType Microsoft.Sql/servers/databases -ResourceGroupName {resource-group-name} -ApiVersion 2014-04-01
关键是在 -ParentResource 参数中包含“servers/”。
因此,要设置标签,您需要确保正确设置 -ParentResource - 您的其余参数都是正确的。
===
您可以通过新门户添加标签。管理这个的 Powershell 东西看起来有一个错误。
在门户中:/subscriptions/GUID/resourceGroups/Default-SQL-WestUS/providers/Microsoft.Sql/servers/{servername}/databases/{database}?api-version=2014-04-01
在PS中:/subscriptions/GUID/resourcegroups/Default-SQL-WestUS/providers/Microsoft.Sql/{servername}/databases/{database}?api-version=2014-04-01
(注意 PS 命令中缺少服务器节点)。
使用 AzureRM.Resources 3.0.1,您可以使用以下语法在 Sql 数据库上设置标签:
Set-AzureRmResource -ResourceType 'Microsoft.Sql/servers/databases' -ResourceName "$sqlServerName/$sqlDatabaseName" -ResourceGroupName $ressourceGroupName -Tag @{ env = "dev" }
实际上,Get-AzureRmResource
返回的 Sql 数据库资源的名称已经具有 server/database
.