Condividi tramite


Sviluppare modelli per l'hub di Azure Stack con Azure Resource Manager

Durante lo sviluppo dell'app, è importante avere la portabilità dei modelli tra Azure e l'hub di Azure Stack. Questo articolo fornisce considerazioni per lo sviluppo di modelli di Azure Resource Manager. Con questi modelli, è possibile creare un prototipo dell'app e testare la distribuzione in Azure senza accedere a un ambiente hub di Azure Stack.

Disponibilità del provider di risorse

Il modello che si prevede di distribuire deve usare solo i servizi di Microsoft Azure già disponibili o in anteprima nell'hub di Azure Stack.

Namespace pubblici

Poiché l'hub di Azure Stack è ospitato nel data center, ha spazi dei nomi degli endpoint di servizio diversi rispetto al cloud pubblico di Azure. Di conseguenza, gli endpoint pubblici codificati in modo fisso nei modelli di Azure Resource Manager non funzionano quando si tenta di distribuirli su Azure Stack Hub. È possibile costruire gli endpoint di servizio in modo dinamico usando le reference e concatenate funzioni per recuperare i valori dal provider di risorse durante la distribuzione. Ad esempio, invece di codificare in modo statico blob.core.windows.net nel modello, recupera il valore di primaryEndpoints.blob per impostare in modo dinamico l'endpoint 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')]"}}

Controllo delle versioni delle API

Le versioni del servizio di Azure possono variare tra Azure e l'hub di Azure Stack. Ogni risorsa richiede l'attributo apiVersion , che definisce le funzionalità offerte. Per garantire la compatibilità delle versioni dell'API nell'hub di Azure Stack, le versioni API seguenti sono valide per ogni provider di risorse:

Provider di risorse versione dell'API
Calcolo 2015-06-15
Rete 2015-06-15, 2015-05-01-preview
Immagazzinamento 2016-01-01, 2015-06-15, 2015-05-01-preview
KeyVault 2015-06-01
Servizio app 2015-08-01

Funzioni di modello

Le funzioni di Azure Resource Manager offrono le funzionalità necessarie per creare modelli dinamici. Ad esempio, è possibile usare funzioni per attività come:

  • Concatenazione o rifilatura di stringhe.
  • Riferimento ai valori di altre risorse.
  • Iterazione sulle risorse per distribuire più istanze.

Queste funzioni non sono disponibili nell'hub di Azure Stack:

  • Salta
  • Prendere

Percorso risorsa

I modelli di Azure Resource Manager usano un location attributo per inserire le risorse durante la distribuzione. In Azure le località fanno riferimento a un'area, ad esempio Stati Uniti occidentali o America del Sud. Nell'hub di Azure Stack le posizioni sono diverse perché l'hub di Azure Stack si trova nel data center. Per assicurarsi che i modelli siano trasferiscibili tra Azure e l'hub di Azure Stack, è necessario fare riferimento alla posizione del gruppo di risorse durante la distribuzione di singole risorse. È possibile utilizzare [resourceGroup().Location] per assicurarsi che tutte le risorse ereditino la posizione del gruppo di risorse. Il codice seguente è un esempio di utilizzo di questa funzione durante la distribuzione di un account di archiviazione:

"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"
  }
}
]

Passaggi successivi