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

Tento článek vysvětluje, jak používat Azure Resource Manager REST API s Azure Resource Manager šablonami (šablony ARM) k nasazení vašich prostředků do Azure.

Můžete buď zahrnout šablonu do textu žádosti nebo odkaz na soubor. Při použití souboru může být místním souborem nebo externím souborem, 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í.

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 jiné příkazy.

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

Nasazení pomocí rozhraní REST API

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

  2. Pokud provádíte nasazení 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é budete potřebovat 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 žádosti, jako je:

    {
     "location": "West US",
     "tags": {
       "tagname1": "tagvalue1"
     }
    }
    
  3. Před nasazením šablony můžete zobrazit náhled změn, které šablona provede pro vaše prostředí. Pomocí operace citlivosti ověřte, že šablona provádí očekávané změny. Co když zároveň ověří chyby v šabloně.

  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 žádosti 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 kompletní nasazení, nastavte mode na dokončeno. Buďte opatrní při použití kompletního režimu, 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ědi, požádat o obsah nebo obojí, zahrňte debugSetting do žádosti.

    {
     "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í 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 žádosti. Následující příklad ukazuje tělo žádosti s vloženou šablonou a 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. Chcete-li 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
    

Název nasazení

Vašemu nasazení můžete dát název, jako je například ExampleDeployment .

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

Chcete-li 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í. Všechna nasazení se stejným názvem, která nebyla dokončena, budou nahrazena 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 zároveň 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ě je pojmenován storage2 .

Pokud ale spustíte nasazení s názvem newStorage , které nasadí účet úložiště s názvem storage1 , a hned po jeho dokončení spustíte jiné nasazení s názvem newStorage , které nasadí účet úložiště s názvem storage2 , budete mít dva účty úložiště. Jedna má název storage1 a druhá má název storage2 . Ale v historii nasazení 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, newStorage1 které nasadí účet úložiště s názvem storage1 a zároveň 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í.

Aby nedocházelo ke konfliktům s souběžnými nasazeními a zajistili v historii nasazení jedinečné položky, udělte každé nasazení jedinečný název.

Další kroky