Rychlé zprovoznění: Vytvoření a publikování definice spravované aplikace

V tomto rychlém startu najdete Úvod k práci s Azure Managed Applications. Můžete vytvořit a publikovat spravovanou aplikaci, která je určena pro členy vaší organizace.

Pokud chcete publikovat spravovanou aplikaci do katalogu služeb, musíte:

  • Vytvořte šablonu, která definuje prostředky pro nasazení se spravovanou aplikací.
  • Definujte prvky uživatelského rozhraní portálu pro nasazení spravované aplikace.
  • Vytvořte balíček .zip , který obsahuje požadované soubory šablon.
  • Rozhodněte, který uživatel, skupina nebo aplikace potřebují přístup ke skupině prostředků v rámci předplatného uživatele.
  • Vytvořte definici spravované aplikace, která odkazuje na balíček .zip a požádá o přístup k identitě.

Vytvoření šablony ARM

Každá definice spravované aplikace obsahuje soubor s názvem mainTemplate.json. V něm se definují prostředky Azure, které se mají nasadit. Šablona se neliší od běžné šablony ARM.

Vytvořte soubor s názvem mainTemplate.json. V názvu se rozlišují velká a malá písmena.

Přidejte do souboru následující kód JSON. Definuje parametry pro vytvoření účtu úložiště a určuje vlastnosti pro účet úložiště.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountNamePrefix": {
      "type": "string"
    },
    "storageAccountType": {
      "type": "string"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "storageAccountName": "[concat(parameters('storageAccountNamePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2019-06-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2019-06-01').primaryEndpoints.blob]"
    }
  }
}

Uložte soubor mainTemplate. JSON .

Definice prostředí pro vytváření

Jako vydavatel definujete prostředí portálu pro vytváření spravovaných aplikací. V souboru createUiDefinition. JSON se vygeneruje rozhraní portálu. Definujete, jak uživatelé poskytují vstup pro každý parametr pomocí ovládacích prvků , včetně rozevíracích seznamů, textových polí a polí pro hesla.

Vytvoří soubor s názvem createUiDefinition. JSON (u tohoto názvu se rozlišují velká a malá písmena).

Do souboru přidejte následující spouštěcí kód JSON a uložte ho.

{
  "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
  "handler": "Microsoft.Azure.CreateUIDef",
  "version": "0.1.2-preview",
  "parameters": {
    "basics": [
      {}
    ],
    "steps": [
      {
        "name": "storageConfig",
        "label": "Storage settings",
        "subLabel": {
          "preValidation": "Configure the infrastructure settings",
          "postValidation": "Done"
        },
        "bladeTitle": "Storage settings",
        "elements": [
          {
            "name": "storageAccounts",
            "type": "Microsoft.Storage.MultiStorageAccountCombo",
            "label": {
              "prefix": "Storage account name prefix",
              "type": "Storage account type"
            },
            "defaultValue": {
              "type": "Standard_LRS"
            },
            "constraints": {
              "allowedTypes": [
                "Premium_LRS",
                "Standard_LRS",
                "Standard_GRS"
              ]
            }
          }
        ]
      }
    ],
    "outputs": {
      "storageAccountNamePrefix": "[steps('storageConfig').storageAccounts.prefix]",
      "storageAccountType": "[steps('storageConfig').storageAccounts.type]",
      "location": "[location()]"
    }
  }
}

Další informace najdete v tématu Začínáme s CreateUiDefinition.

Zabalení souborů

Přidejte tyto dva soubory do souboru .zip s názvem app.zip. Tyto dva soubory musí být na kořenové úrovni souboru .zip . Pokud je umístíte do složky, zobrazí se při vytváření definice spravované aplikace chyba s informacemi, že požadované soubory nejsou k dispozici.

Nahrajte balíček do přístupného umístění, ze kterého je možné použít ho. Budete muset zadat jedinečný název pro účet úložiště.

New-AzResourceGroup -Name storageGroup -Location eastus

$storageAccount = New-AzStorageAccount `
  -ResourceGroupName storageGroup `
  -Name "mystorageaccount" `
  -Location eastus `
  -SkuName Standard_LRS `
  -Kind StorageV2

$ctx = $storageAccount.Context

New-AzStorageContainer -Name appcontainer -Context $ctx -Permission blob

Set-AzStorageBlobContent `
  -File "D:\myapplications\app.zip" `
  -Container appcontainer `
  -Blob "app.zip" `
  -Context $ctx

Vytvoření definice spravované aplikace

Vytvoření skupiny uživatelů nebo aplikace Azure Active Directory

Dalším krokem je výběr skupiny uživatelů, uživatele nebo aplikace pro správu prostředků pro zákazníka. Tato identita má oprávnění pro spravovanou skupinu prostředků podle přiřazené role. Role může být libovolná předdefinovaná role Azure, jako je vlastník nebo Přispěvatel. Pokud chcete vytvořit novou skupinu uživatelů služby Active Directory, přečtěte si téma Vytvoření skupiny a přidání členů v Azure Active Directory.

Potřebujete ID objektu skupiny uživatelů, které se má používat pro správu zdrojů.

$groupID=(Get-AzADGroup -DisplayName mygroup).Id

Získání ID definici role

Dále potřebujete ID definice role předdefinované role Azure, které chcete udělit přístup uživateli, skupině uživatelů nebo aplikaci. Obvykle se používá role vlastníka, přispěvatele nebo čtenáře. Následující příkaz ukazuje, jak získat ID definice role pro roli vlastníka:

$ownerID=(Get-AzRoleDefinition -Name Owner).Id

Vytvoření definice spravované aplikace

Pokud ještě nemáte skupinu prostředků pro uložení definice spravované aplikace, vytvořte ji:

New-AzResourceGroup -Name appDefinitionGroup -Location westcentralus

Teď vytvoříte prostředek definice spravované aplikace.

$blob = Get-AzStorageBlob -Container appcontainer -Blob app.zip -Context $ctx

New-AzManagedApplicationDefinition `
  -Name "ManagedStorage" `
  -Location "westcentralus" `
  -ResourceGroupName appDefinitionGroup `
  -LockLevel ReadOnly `
  -DisplayName "Managed Storage Account" `
  -Description "Managed Azure Storage Account" `
  -Authorization "${groupID}:$ownerID" `
  -PackageFileUri $blob.ICloudBlob.StorageUri.PrimaryUri.AbsoluteUri

Po dokončení příkazu máte definici spravované aplikace ve vaší skupině prostředků.

Některé z parametrů použitých v předchozím příkladu:

  • Skupina prostředků: název skupiny prostředků, ve které se vytvoří definice spravované aplikace.
  • Úroveň zámku: typ zámku umístěný do spravované skupiny prostředků. Zabraňuje zákazníkovi v provádění nežádoucích operací s touto skupinou prostředků. Jedinou podporovanou úrovní zámku momentálně je ReadOnly. Prostředky, které jsou ve spravované skupině prostředků dostupné, může při zadání úrovně ReadOnly zákazník jenom číst. Zámek se nevztahuje na identity vydavatelů s uděleným přístupem ke spravované skupině prostředků.
  • authorizations: Popisuje ID objektu zabezpečení a ID definice role, které slouží k udělení oprávnění pro spravovanou skupinu prostředků. tento parametr je zadaný ve formátu <principalId>:<roleDefinitionId>. Pokud je potřeba zadat více hodnot, zadejte je ve formátu <principalId1>:<roleDefinitionId1>,<principalId2>:<roleDefinitionId2>. Hodnoty jsou oddělené čárkou.
  • identifikátor URI souboru balíčku: umístění balíčku .zip , který obsahuje požadované soubory.

Přineste si vlastní úložiště pro definici spravované aplikace

Definici spravované aplikace si můžete uložit v rámci účtu úložiště, který jste zadali během vytváření, aby bylo možné její umístění a přístup plně spravovat podle vašich zákonných potřeb.

Poznámka

Využití vlastního úložiště je podporované jenom šablonou ARM nebo nasazením REST API definice spravované aplikace.

Vyberte svůj účet úložiště.

Musíte vytvořit účet úložiště , který bude obsahovat definici spravované aplikace pro použití s katalogem služeb.

Zkopírujte ID prostředku účtu úložiště. Použije se později při nasazování definice.

Nastavte přiřazení role pro "poskytovatele prostředků zařízení" v účtu úložiště.

Předtím, než bude možné nasadit definici spravované aplikace do svého účtu úložiště, přiřaďte roli přispěvatele uživateli poskytovatele prostředků zařízení v oboru účtu úložiště. Toto přiřazení umožňuje identitám zapisovat definiční soubory do kontejneru účtu úložiště.

Podrobný postup najdete v tématu přiřazení rolí Azure pomocí Azure Portal.

Nasazení definice spravované aplikace pomocí šablony ARM

Pomocí následující šablony ARM nasaďte zabalené spravované aplikace jako novou definici spravované aplikace v katalogu služeb, jejíž definiční soubory se ukládají a udržují ve vašem vlastním účtu úložiště:

{
  "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "applicationName": {
      "type": "string",
      "metadata": {
        "description": "Managed Application name"
      }
    },
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS",
        "Premium_LRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "definitionStorageResourceID": {
      "type": "string",
      "metadata": {
        "description": "Storage account resource ID for where you're storing your definition"
      }
    },
    "_artifactsLocation": {
      "type": "string",
      "metadata": {
        "description": "The base URI where artifacts required by this template are located."
      }
    }
  },
  "variables": {
    "lockLevel": "None",
    "description": "Sample Managed application definition",
    "displayName": "Sample Managed application definition",
    "managedApplicationDefinitionName": "[parameters('applicationName')]",
    "packageFileUri": "[parameters('_artifactsLocation')]",
    "defLocation": "[parameters('definitionStorageResourceID')]",
    "managedResourceGroupId": "[concat(subscription().id,'/resourceGroups/', concat(parameters('applicationName'),'_managed'))]",
    "applicationDefinitionResourceId": "[resourceId('Microsoft.Solutions/applicationDefinitions',variables('managedApplicationDefinitionName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Solutions/applicationDefinitions",
      "apiVersion": "2020-08-21-preview",
      "name": "[variables('managedApplicationDefinitionName')]",
      "location": "[parameters('location')]",
      "properties": {
        "lockLevel": "[variables('lockLevel')]",
        "description": "[variables('description')]",
        "displayName": "[variables('displayName')]",
        "packageFileUri": "[variables('packageFileUri')]",
        "storageAccountId": "[variables('defLocation')]"
      }
    }
  ],
  "outputs": {}
}

Přidali jsme novou vlastnost s názvem storageAccountId do vašich applicationDefinitions vlastností a zadáte ID účtu úložiště, do kterého chcete definici uložit, jako její hodnotu:

Můžete ověřit, zda jsou soubory definic aplikace uloženy v zadaném účtu úložiště v kontejneru s názvem applicationDefinitions .

Poznámka

Pro zvýšení zabezpečení můžete vytvořit definici spravovaných aplikací v objektu BLOB účtu úložiště Azure, kde je šifrování povolené. Obsah definice se šifruje prostřednictvím možností šifrování účtu úložiště. Jenom uživatelé s oprávněními k tomuto souboru uvidí definici v katalogu služeb.

Je potřeba zajistit, že budou uživatelé vidět vaši definici.

Máte přístup k definici spravované aplikace, ale je potřeba zajistit přístup i pro ostatní uživatele ve vaší organizaci. Udělte jim k definici alespoň přístup role Čtenář. Je možné, že tuto úroveň přístupu zdědili z předplatného nebo skupiny prostředků. Pokud chcete zjistit, kdo má přístup k definici a přidat uživatele nebo skupiny, přečtěte si téma přiřazení rolí Azure pomocí Azure Portal.

Další kroky

Publikovali jste definici spravované aplikace. Teď se dozvíte, jak nasadit instanci této definice.