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

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

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

Požadovaná oprávnění

Pokud chcete nasadit soubor Bicep nebo šablonu ARM, musíte mít přístup k zápisu pro prostředky, které nasazujete, a přístup ke všem operacím s prostředky typu Microsoft.Resources/deployments. Pokud chcete například nasadit virtuální počítač, potřebujete Microsoft.Compute/virtualMachines/write a Microsoft.Resources/deployments/* oprávnění.

Seznam rolí a oprávnění najdete v tématu Předdefinované role Azure.

Rozsah 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.

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 vaše ř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 můžete zobrazit náhled změn, které šablona provede ve vašem prostředí. Pomocí operace citlivostní analýzy ověřte, že šablona provádí očekávané změny. Citlivostní analýza také ověří chyby šablony.

  4. Pokud chcete nasadit šablonu, zadejte ID předplatného, název skupiny prostředků, 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 si, že mode je nastavená na přírůstkové. Pokud chcete spustit úplné nasazení, nastavte mode na Tlačítko Dokončit. Při použití kompletního režimu buďte opatrní, protože můžete neúmyslně 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ědi, vyžádat 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 používal token sdíleného přístupového podpisu (SAS). Další informace najdete v tématu Delegování přístupu pomocí sdíleného přístupového podpisu.

    Pokud potřebujete zadat citlivou hodnotu pro parametr (například heslo), přidejte tuto hodnotu do trezoru klíčů. Načtěte trezor klíčů během nasazení, jak je znázorněno v předchozím příkladu. Další informace najdete v tématu Použití služby 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 šablonou a vloženým parametrem:

    {
       "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 nasazení – Získat.

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

Nasazení pomocí ARMClient

ARMClient je jednoduchý nástroj příkazového řádku pro vyvolání rozhraní API Azure Resource Manageru. Pokud chcete nástroj nainstalovat, přečtěte si téma ARMClient.

Zobrazení seznamu předplatných:

armclient GET /subscriptions?api-version=2021-04-01

Zobrazení seznamu skupin prostředků:

armclient GET /subscriptions/<subscription-id>/resourceGroups?api-version=2021-04-01

Nahraďte <ID> předplatného vaším ID předplatného Azure.

Vytvoření skupiny prostředků v oblasti USA – střed :

armclient PUT /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>?api-version=2021-04-01  "{location: 'central us', properties: {}}"

Případně můžete text vložit do souboru JSON s názvem CreateRg.json:

{
  "location": "Central US",
  "properties": { }
}
armclient PUT /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>?api-version=2021-04-01 '@CreateRg.json'

Další informace najdete v tématu ARMClient: nástroj příkazového řádku pro rozhraní Azure API.

Název nasazení

Můžete zadat název nasazení, například ExampleDeployment.

Při každém spuštění nasazení se položka přidá do historie nasazení skupiny prostředků s názvem nasazení. Pokud spustíte jiné nasazení a zadáte ho stejným názvem, 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í, dokončí se pouze poslední nasazení. Všechna nasazení se stejným názvem, která nebyla dokončena, se nahradí posledním nasazením. Pokud například spustíte nasazení s názvem newStorage , které nasadí účet úložiště s názvem storage1, a současně spustíte jiné nasazení s názvem newStorage , které nasadí účet úložiště s názvem storage2, nasadíte jenom jeden účet úložiště. Výsledný účet úložiště má název storage2.

Pokud ale spustíte nasazení s názvem newStorage , které nasadí účet úložiště s názvem storage1, a hned po dokončení spustíte další nasazení s názvem newStorage , které nasadí účet úložiště s názvem storage2, pak máte dva účty úložiště. Jeden má název storage1a druhý má název storage2. V historii nasazení ale máte jenom jednu položku.

Když zadáte jedinečný název pro každé nasazení, můžete je spustit souběžně bez konfliktu. Pokud spustíte nasazení s názvem newStorage1 , které nasadí účet úložiště s názvem storage1, a současně spustíte jiné nasazení s názvem newStorage2 , které nasadí účet úložiště s názvem storage2, budete mít dva účty úložiště a dvě položky v historii 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