Nasazení prostředků pomocí šablon ARM a Azure Resource Manager REST API

Tento článek vysvětluje, jak pomocí Azure Resource Manager REST API s Azure Resource Manager (šablonami ARM) nasadit prostředky do Azure.

Šablonu můžete zahrnout do textu požadavku nebo odkazovat na soubor. Při použití souboru to může být místní soubor nebo externí soubor, který je k dispozici prostřednictvím identifikátoru URI. Když je vaše šablona v účtu úložiště, můžete omezit přístup k šabloně a během nasazování poskytnout token sdíleného přístupového podpisu (SAS).

Obor nasazení

Nasazení můžete cílit na skupinu prostředků, předplatné Azure, skupinu pro správu nebo tenanta. V závislosti na rozsahu nasazení použijete různé příkazy.

  • K nasazení do skupiny prostředků použijte Nasazení – Vytvořit. Požadavek se odesílá do:

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
    
  • K nasazení do předplatného použijte možnost Nasazení – Vytvořit v oboru předplatného. Požadavek se odesílá do:

    PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
    

    Další informace o nasazeních na úrovni předplatného najdete v tématu Vytvoření skupin prostředků a prostředků na úrovni předplatného.

  • K nasazení do skupiny pro správu použijte možnost Nasazení – Vytvořit v oboru skupiny pro správu. Požadavek se odesílá do:

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{groupId}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
    

    Další informace o nasazeních na úrovni skupiny pro správu najdete v tématu Vytváření prostředků na úrovni skupiny pro správu.

  • K nasazení do tenanta použijte nasazení – Vytvoření nebo aktualizace v oboru tenanta. Požadavek se odesílá do:

    PUT https://management.azure.com/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
    

    Další informace o nasazeních na úrovni tenanta najdete v tématu Vytváření prostředků na úrovni tenanta.

Příklady v tomto článku používají nasazení skupin prostředků.

Nasazení pomocí rozhraní REST API

  1. Nastavte běžné parametry a hlavičky, včetně ověřovacích tokenů.

  2. Pokud nasazujete do skupiny prostředků, která neexistuje, vytvořte skupinu prostředků. Zadejte ID předplatného, název nové skupiny prostředků a umístění, které potřebujete pro své řešení. Další informace najdete v tématu Vytvoření skupiny prostředků.

    PUT https://management.azure.com/subscriptions/<YourSubscriptionId>/resourcegroups/<YourResourceGroupName>?api-version=2020-06-01
    

    S textem požadavku, jako je:

    {
     "location": "West US",
     "tags": {
       "tagname1": "tagvalue1"
     }
    }
    
  3. Před nasazením šablony si můžete zobrazit náhled změn, které šablona v prostředí změní. Pomocí operace what-if ověřte, že šablona provede požadované změny. What-if také ověří, jestli šablona obsahuje chyby.

  4. Pokud chcete nasadit šablonu, zadejte ID předplatného, název skupiny prostředků a název nasazení v identifikátoru URI požadavku.

    PUT https://management.azure.com/subscriptions/<YourSubscriptionId>/resourcegroups/<YourResourceGroupName>/providers/Microsoft.Resources/deployments/<YourDeploymentName>?api-version=2020-10-01
    

    V textu požadavku zadejte odkaz na šablonu a soubor parametrů. Další informace o souboru parametrů najdete v tématu Vytvoření souboru parametrů Resource Manageru.

    Všimněte mode si, že je hodnota nastavená na přírůstkové. Pokud chcete spustit úplné nasazení, nastavte mode na Dokončit. Při použití úplného režimu buďte opatrní, protože můžete nechtěně odstranit prostředky, které nejsou ve vaší šabloně.

    {
     "properties": {
       "templateLink": {
         "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
         "contentVersion": "1.0.0.0"
       },
       "parametersLink": {
         "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
         "contentVersion": "1.0.0.0"
       },
       "mode": "Incremental"
     }
    }
    

    Pokud chcete protokolovat obsah odpovědí, požádat o obsah nebo obojí, zahrnout debugSetting do požadavku.

    {
     "properties": {
       "templateLink": {
         "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
         "contentVersion": "1.0.0.0"
       },
       "parametersLink": {
         "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
         "contentVersion": "1.0.0.0"
       },
       "mode": "Incremental",
       "debugSetting": {
         "detailLevel": "requestContent, responseContent"
       }
     }
    }
    

    Účet úložiště můžete nastavit tak, aby se token sdíleného přístupového podpisu (SAS) mohl používat. Další informace najdete v tématu Delegování přístupu pomocí sdíleného přístupového podpisu.

    Pokud potřebujete zadat citlivou hodnotu parametru (například hesla), přidejte ji do trezoru klíčů. Během nasazování načtěte trezor klíčů, jak je znázorněno v předchozím příkladu. Další informace najdete v tématu Použití Azure Key Vault k předání hodnoty zabezpečeného parametru během nasazování.

  5. Místo propojení se soubory pro šablonu a parametry je můžete zahrnout do textu požadavku. Následující příklad ukazuje text požadavku s vloženým parametrem a šablonou:

    {
       "properties": {
       "mode": "Incremental",
       "template": {
         "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
         "contentVersion": "1.0.0.0",
         "parameters": {
           "storageAccountType": {
             "type": "string",
             "defaultValue": "Standard_LRS",
             "allowedValues": [
               "Standard_LRS",
               "Standard_GRS",
               "Standard_ZRS",
               "Premium_LRS"
             ],
             "metadata": {
               "description": "Storage Account type"
             }
           },
           "location": {
             "type": "string",
             "defaultValue": "[resourceGroup().location]",
             "metadata": {
               "description": "Location for all resources."
             }
           }
         },
         "variables": {
           "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
         },
         "resources": [
           {
             "type": "Microsoft.Storage/storageAccounts",
             "apiVersion": "2018-02-01",
             "name": "[variables('storageAccountName')]",
             "location": "[parameters('location')]",
             "sku": {
               "name": "[parameters('storageAccountType')]"
             },
             "kind": "StorageV2",
             "properties": {}
           }
         ],
         "outputs": {
           "storageAccountName": {
             "type": "string",
             "value": "[variables('storageAccountName')]"
           }
         }
       },
       "parameters": {
         "location": {
           "value": "eastus2"
         }
       }
     }
    }
    
  6. Pokud chcete získat stav nasazení šablony, použijte Deployments - Get.

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
    

Název nasazení

Nasazení můžete dejte například ExampleDeployment .

Pokaždé, když spustíte nasazení, se do historie nasazení skupiny prostředků přidá položka s názvem nasazení. Pokud spustíte jiné nasazení a dáte mu stejný název, nahradí se předchozí položka aktuálním nasazením. Pokud chcete zachovat jedinečné položky v historii nasazení, dejte každému nasazení jedinečný název.

Pokud chcete vytvořit jedinečný název, můžete přiřadit náhodné číslo. Nebo přidejte hodnotu data.

Pokud spustíte souběžná nasazení do stejné skupiny prostředků se stejným názvem nasazení, bude dokončeno pouze poslední nasazení. Nasazení se stejným názvem, která se nedokončila, se nahradí posledním nasazením. Pokud například spustíte nasazení s názvem , které nasadí účet úložiště s názvem a zároveň spustíte další nasazení s názvem , které nasadí účet úložiště s názvem , nasadíte pouze newStorage storage1 jeden účet newStorage storage2 úložiště. Výsledný účet úložiště má název storage2 .

Pokud však spustíte nasazení s názvem , které nasadí účet úložiště s názvem , a ihned po jeho dokončení spustíte další nasazení s názvem , které nasadí účet úložiště s názvem , budete mít newStorage storage1 dva účty newStorage storage2 úložiště. Jedna má název storage1 a druhá má název storage2 . V historii nasazení ale máte jenom jednu položku.

Pokud pro každé nasazení zadáte jedinečný název, můžete je spustit souběžně bez konfliktu. Pokud spustíte nasazení s názvem , které nasadí účet úložiště s názvem a zároveň spustíte další nasazení s názvem , které nasadí účet úložiště s názvem , budete mít dva účty úložiště a dvě položky v historii newStorage1 storage1 newStorage2 storage2 nasazení.

Pokud se chcete vyhnout konfliktům se souběžnými nasazeními a zajistit jedinečné položky v historii nasazení, dejte každému nasazení jedinečný název.

Další kroky