Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous développez votre application, il est important d’avoir une portabilité de modèle entre Azure et Azure Stack Hub. Cet article fournit des considérations sur le développement de modèles Azure Resource Manager. Avec ces modèles, vous pouvez prototyper votre application et tester le déploiement dans Azure sans accéder à un environnement Azure Stack Hub.
Disponibilité du fournisseur de ressources
Le modèle que vous envisagez de déployer doit uniquement utiliser les services Microsoft Azure déjà disponibles ou en préversion dans Azure Stack Hub.
Espaces de noms publics
Étant donné qu’Azure Stack Hub est hébergé dans votre centre de données, il a différents espaces de noms de point de terminaison de service que le cloud public Azure. Par conséquent, les points de terminaison publics codés en dur dans les modèles Azure Resource Manager échouent lorsque vous essayez de les déployer sur Azure Stack Hub. Vous pouvez créer dynamiquement des points de terminaison de service à l’aide des fonctions et concatenate des reference fonctions pour récupérer des valeurs du fournisseur de ressources pendant le déploiement. Par exemple, au lieu de coder blob.core.windows.net en dur dans votre modèle, récupérez le fichier primaryEndpoints.blob pour définir dynamiquement le point de terminaison 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')]"}}
Contrôle de version d’API
Les versions de service Azure peuvent différer entre Azure et Azure Stack Hub. Chaque ressource nécessite l’attribut apiVersion , qui définit les fonctionnalités offertes. Pour garantir la compatibilité des versions de l’API dans Azure Stack Hub, les versions d’API suivantes sont valides pour chaque fournisseur de ressources :
| Fournisseur de ressources | apiVersion |
|---|---|
| Calculer | 2015-06-15 |
| Réseau | 2015-06-15, 2015-05-01-preview |
| Stockage | 2016-01-01, 2015-06-15, 2015-05-01-preview |
| KeyVault | 2015-06-01 |
| Service d'application | 2015-08-01 |
Fonctions des modèles de gestionnaire des ressources Azure
Les fonctions Azure Resource Manager fournissent les fonctionnalités requises pour créer des modèles dynamiques. Par exemple, vous pouvez utiliser des fonctions pour des tâches telles que :
- Concaténation ou découpage de chaînes.
- Référencement de valeurs à partir d’autres ressources.
- Itération sur les ressources pour déployer plusieurs instances.
Ces fonctions ne sont pas disponibles dans Azure Stack Hub :
- Sautiller
- Prendre
Emplacement des ressources
Les modèles Azure Resource Manager utilisent un location attribut pour placer des ressources pendant le déploiement. Dans Azure, les emplacements font référence à une région telle que USA Ouest ou Amérique du Sud. Dans Azure Stack Hub, les emplacements sont différents, car Azure Stack Hub se trouve dans votre centre de données. Pour vous assurer que les modèles sont transférables entre Azure et Azure Stack Hub, vous devez référencer l’emplacement du groupe de ressources lorsque vous déployez des ressources individuelles. Vous pouvez effectuer cette opération [resourceGroup().Location] pour vous assurer que toutes les ressources héritent de l’emplacement du groupe de ressources. Le code suivant est un exemple d’utilisation de cette fonction lors du déploiement d’un compte de stockage :
"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"
}
}
]