Reputation: 16239
I'm using ARM template for logic app deployment and below section i'm trying to create resource group nested with NSG and vnet.
Nsg and vnet section working fine but when I add resource group section deployment failing with below error -
No HTTP resource was found that matches the request URI
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "[concat(parameters('nsgName'), '-nsg')]",
"comments": "Nested deployment to create Network Security Groups",
"resourceGroup": "[parameters('nsgResourceGroupName')]",
"dependsOn": [],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"name": "mydemo",
"location": "[parameters('nsgResourceLocation')]",
"properties": {}
},
{
"apiVersion": "2020-05-01",
"type": "Microsoft.Network/networkSecurityGroups",
"name": "[parameters('nsgName')]",
"location": "[parameters('nsgResourceLocation')]",
"properties": {
},
"tags": {
"resourceType": "LogicApps Network Security Groups",
"clusterName": "Standard Logic Apps"
}
},
{
"apiVersion": "2020-05-01",
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('vnetName')]",
"location": "[parameters('vnetLocation')]",
"dependsOn": [
],
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('addressPrefix')]"
]
},
},
"tags": {
"resourceType": "Logic Apps",
"logicAppNames": "Standard Logic Apps"
}
}
]
}
}
}
]
}
issue started occuring when added resource group creation section -
i.e.
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"name": "mydemo",
"location": "[parameters('nsgResourceLocation')]",
"properties": {}
}
Upvotes: 0
Views: 73
Reputation: 1531
you can deploy in two steps.
must be deployed in order in powershell script. Template dependson not works across subscription level and resource group level, otherwise here can be in one template
resourceGroup.json
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secondResourceGroup": {
"type": "string",
"defaultValue": "wb-test-rg"
},
"secondSubscriptionID": {
"type": "string",
"defaultValue": "xxx-xxxxx-xxxx"
},
"resourceGroupLocation": {
"type": "string",
"defaultValue": "eastus"
}
},
"variables": {
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "rgDeployment",
"location": "westus",
"subscriptionId": "[parameters('secondSubscriptionID')]",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('secondResourceGroup')]",
"location": "[parameters('resourceGroupLocation')]",
"properties": {}
}
],
"outputs": {}
}
}
}
]
}
resources.json
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secondResourceGroup": {
"type": "string",
"defaultValue": "wb-test-rg"
},
"secondSubscriptionID": {
"type": "string",
"defaultValue": "xxx-xxxxxx-xxxx"
},
"nsgName": {
"type": "string",
"defaultValue": "wb-nsg"
},
"nsgLocation": {
"type": "string",
"defaultValue": "eastus"
},
"vnetLocation": {
"type": "string",
"defaultValue": "eastus"
},
"vnetName": {
"type": "string",
"defaultValue": "wb-vnet"
}
},
"variables": {
"addressPrefix": "10.0.0.0/16"
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "resourcesDeployment",
"resourceGroup": "[parameters('secondResourceGroup')]",
"subscriptionId": "[parameters('secondSubscriptionID')]",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"apiVersion": "2020-05-01",
"type": "Microsoft.Network/networkSecurityGroups",
"name": "[parameters('nsgName')]",
"location": "[parameters('nsgLocation')]",
"properties": {
},
"tags": {
"resourceType": "LogicApps Network Security Groups",
"clusterName": "Standard Logic Apps"
}
},
{
"apiVersion": "2020-05-01",
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('vnetName')]",
"location": "[parameters('vnetLocation')]",
"dependsOn": [
],
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('addressPrefix')]"
]
}
},
"tags": {
"resourceType": "Logic Apps",
"logicAppNames": "Standard Logic Apps"
}
}
]
},
"parameters": {}
}
}
]
}
Upvotes: 0
Reputation: 5411
The reason you are getting error No HTTP resource was found that matches the request URI
is that you are trying to create a resource group "mydemo" inside another resource group "nsgResourceGroupName", which isn't supported.
To create a resource group, use schema https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#
. Below is an example for your reference.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"rgName": {
"type": "string",
"metadata": {
"description": "Name of the resource group to create."
}
},
"rgLocation": {
"type": "string",
"defaultValue": "[deployment().location]",
"metadata": {
"description": "Azure Region the resource group will be created in."
}
}
},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2022-09-01",
"name": "[parameters('rgName')]",
"location": "[parameters('rgLocation')]"
}
]
}
Use AzureResourceManagerTemplateDeployment@3
task to deploy your ARM template. Make sure to set the deploymentScope
to Subscription
.
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Subscription'
azureResourceManagerConnection: '{SC}'
subscriptionId: '{Sub ID}'
location: '{Deployment location}'
templateLocation: 'Linked artifact'
csmFile: '$(Build.SourcesDirectory)/template.json'
overrideParameters: '-rgName zyrg '
deploymentMode: 'Incremental'
Not all resource types can be deployed to the subscription level. See the supported resource type from Supported resources.
Upvotes: 0