如何在PowerShell中使用RESTful API在Azure中创建资源组?

如何在PowerShell中使用RESTful API在Azure中创建资源组?,rest,powershell,azure,Rest,Powershell,Azure,我想使用RESTAPI调用创建Azure资源组,但我似乎无法正确使用语法。以下是我所拥有的: $validateResourceGroupUri = 'https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/' + $resourceGroupName + '/?api-version=2015-01-01' try { $trapValidateResponse = Invoke-RestMethod

我想使用RESTAPI调用创建Azure资源组,但我似乎无法正确使用语法。以下是我所拥有的:

$validateResourceGroupUri = 'https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/' + $resourceGroupName + '/?api-version=2015-01-01'

try { $trapValidateResponse = Invoke-RestMethod -Method PUT -Headers $armHeaders -Uri $validateResourceGroupUri -Body $deploymentTemplate }
catch { throw $_ }
其中:

$deploymentTemplate = JSON deployment template (obviously)

$resourceGroupName = user-inputted RG name to be created

$armHeaders = @{ 'Authorization' = "Bearer $token"; 'Content-Type' = "Application/json" }

我觉得这个问题存在于-Body参数中,但我似乎无法在网上找到任何详细说明调用应该包含哪些内容的内容。我发现,如果你向下滚动到“创建资源组”部分,它会详细介绍一些信息,但不幸的是,我只能找到这些信息。有什么想法吗?

您可以尝试使用以下命令创建一个新的资源组,它适合我

##get token
$TENANTID="<your tenantid>"
$APPID="<>"
$PASSWORD="<>"
$result=Invoke-RestMethod -Uri https://login.microsoftonline.com/$TENANTID/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://management.core.windows.net/"; "client_id" = "$APPID"; "client_secret" = "$PASSWORD" }
$token=$result.access_token

##set subscriptionId and resource group name
$subscriptionId="<your subscriptionId >"
$resourcegroupname="<resource group name>"

$Headers=@{
  'authorization'="Bearer $token"
  'host'="management.azure.com"
}
$body='{
    "location": "northeurope",
     "tags": {
        "tagname1": "test-tag"
    }
 }'
Invoke-RestMethod  -Uri "https://management.azure.com/subscriptions/$subscriptionId/resourcegroups/${resourcegroupname}?api-version=2015-01-01"  -Headers $Headers -ContentType "application/json" -Method PUT -Body $body
##获取令牌
$TENANTID=“”
$APPID=“”
$PASSWORD=“”
$result=调用RestMethod-Urihttps://login.microsoftonline.com/$TENANTID/oauth2/token?api版本=1.0-方法Post-Body@{“授权类型”=“客户端凭据”;“资源”=”https://management.core.windows.net/“;“客户端id”=“$APPID”;“客户端机密”=“$PASSWORD”}
$token=$result.access\u令牌
##设置subscriptionId和资源组名称
$subscriptionId=“”
$resourcegroupname=“”
$Headers=@{
“授权”=“持票人$token”
“主机”=“management.azure.com”
}
$body={
“地点”:“北欧”,
“标签”:{
“标记名1”:“测试标记”
}
}'
调用RestMethod-Uri“https://management.azure.com/subscriptions/$subscriptionId/resourcegroups/${resourcegroupname}?api版本=2015-01-01“-Headers$Headers-ContentType“application/json”-方法PUT-Body$Body

您收到的错误消息是什么?请同时共享部署模板的内容。您是尝试将模板部署到现有RG,还是尝试创建空RG?如果部署模板,则应部署到现有RG。如果创建空RG,则正文不应包含任何模板,而应包含您在“创建资源组”下指定的链接中的RG定义。谢谢,这完全符合我的设想!