Desenvolver modelos para o Azure Stack Hub com o Azure Resource Manager

À medida que desenvolve a sua aplicação, é importante ter portabilidade de modelos entre o Azure e o Azure Stack Hub. Este artigo fornece considerações sobre o desenvolvimento de modelos do Azure Resource Manager. Com estes modelos, pode criar protótipos da sua aplicação e testar a implementação no Azure sem acesso a um ambiente do Azure Stack Hub.

Disponibilidade do fornecedor de recursos

O modelo que planeia implementar só tem de utilizar serviços do Microsoft Azure que já estejam disponíveis ou em pré-visualização no Azure Stack Hub.

Espaços de nomes públicos

Uma vez que o Azure Stack Hub está alojado no seu datacenter, tem espaços de nomes de ponto final de serviço diferentes dos da cloud pública do Azure. Como resultado, os pontos finais públicos hard-coded no Azure Resource Manager modelos falham quando tenta implementá-los no Azure Stack Hub. Pode criar dinamicamente pontos finais de serviço com as reference funções e concatenate para obter valores do fornecedor de recursos durante a implementação. Por exemplo, em vez de codificar blob.core.windows.net no seu modelo, obtenha o primaryEndpoints.blob para definir dinamicamente o ponto final osDisk.URI :

"osDisk": {"name": "osdisk","vhd": {"uri":
"[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2015-06-15').primaryEndpoints.blob, variables('vmStorageAccountContainerName'),
 '/',variables('OSDiskName'),'.vhd')]"}}

Controlo de versões da API

As versões de serviço do Azure podem ser diferentes entre o Azure e o Azure Stack Hub. Cada recurso requer o atributo apiVersion , que define as capacidades oferecidas. Para garantir a compatibilidade da versão da API no Azure Stack Hub, as seguintes versões da API são válidas para cada fornecedor de recursos:

Fornecedor de Recursos apiVersion
Computação 2015-06-15
Rede 06-2015-15, 2015-05-01-preview
Armazenamento 01-01-2016, 2015-06-15, 2015-05-01-preview
KeyVault 2015-06-01
Serviço de Aplicações 2015-08-01

Funções de modelos

As funções do Azure Resource Manager fornecem as capacidades necessárias para criar modelos dinâmicos. Por exemplo, pode utilizar funções para tarefas como:

  • Concatenar ou cortar cadeias.
  • Referenciar valores de outros recursos.
  • Iterar recursos para implementar várias instâncias.

Estas funções não estão disponíveis no Azure Stack Hub:

  • Ignorar
  • Realizar

Localização do recurso

Os modelos do Azure Resource Manager utilizam um location atributo para colocar recursos durante a implementação. No Azure, as localizações referem-se a uma região como E.U.A. Oeste ou América do Sul. No Azure Stack Hub, as localizações são diferentes porque o Azure Stack Hub está no seu datacenter. Para garantir que os modelos são transferíveis entre o Azure e o Azure Stack Hub, deve referenciar a localização do grupo de recursos à medida que implementa recursos individuais. Pode fazê-lo com [resourceGroup().Location] o para garantir que todos os recursos herdam a localização do grupo de recursos. O código seguinte é um exemplo de utilização desta função ao implementar uma conta de armazenamento:

"resources": [
{
  "name": "[variables('storageAccountName')]",
  "type": "Microsoft.Storage/storageAccounts",
  "apiVersion": "[variables('apiVersionStorage')]",
  "location": "[resourceGroup().location]",
  "comments": "This storage account is used to store the VM disks",
  "properties": {
  "accountType": "Standard_LRS"
  }
}
]

Passos seguintes