1
votes

Place de marché Azure: est-il possible d'utiliser des images dans l'offre d'application gérée?

J'ai créé l'application gérée Azure. J'ai utilisé des images gérées dans mainTemplate.json pour créer de nouvelles VM, comme dans l'exemple:

{
    "type": "Microsoft.Compute/images",
    "apiVersion": "2018-04-01",
    "name": "front-image",
    "location": "[parameters('location')]",
    "properties": {
        "storageProfile": {
            "osDisk": {
                "osType": "linux",
                "osState": "Generalized",
                "blobUri": "[concat('https://sdfasdfasdf.blob.core.windows.net/images/myserver.vhd')]",
                "caching": "ReadWrite",
                "storageAccountType": "Standard_LRS"
            }
        }
    }
}, {
    "apiVersion": "2016-04-30-preview",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "myserver",
    "location": "[parameters('location')]",
    "dependsOn": ["myserver-nic", "myserver-images"],
    "properties": {
        "storageProfile": {
            "imageReference": {
                "id": "[resourceId('Microsoft.Compute/images', 'myserver-image')]"
            }
        },
        ...
    }
}

Cela fonctionne bien dans le catalogue de services. Mais lorsque j'essaye de déployer une application depuis Azure Marketplace, j'ai l'erreur suivante:

Le blob source https://sdfasdfasdf.blob.core.windows.net/images/myserver.vhd n'appartient pas à un compte de stockage dans l'abonnement ******.

Dans Azure FAQ J'ai trouvé ensuite:

Q: Puis-je utiliser un fichier VHD dans un compte de stockage Azure pour créer un disque géré avec un abonnement différent?

R: Oui.

Qu'est-ce que je fais de mal?


4 commentaires

J'ai trouvé une question similaire sur le forum azure, mais sans réponse: social.msdn.microsoft.com/Forums/azure/en-US/...


en fait pas sûr de cette FAQ. sont-ils tous les deux dans la même région?


Oui, c'est, à la fois dans centralus


bizarre, enfin de toute façon, je ne connais que cette façon de faire (c'est celle que j'ai décrite dans la réponse)


3 Réponses :


1
votes

cela ne peut fonctionner qu'avec certaines bizarreries. en gros, vous devez faire quelque chose qui ressemble à ceci . Utilisez donc une sorte de mécanisme tiers pour créer une image dans l'abonnement client. vous ne pouvez pas utiliser d'images dans tous les abonnements (au moins au moment de la rédaction).


10 commentaires

Merci! Cela fonctionne, mais je ne comprends pas comment. J'ai trouvé l'image TransferVM-osdisk.vhd dans le compte de stockage. D'où est-ce qu'il venait?


il y a un script dans cette première machine virtuelle qui fait cela, vous pouvez explorer cette solution que j'ai liée pour mieux comprendre


Cela fonctionne pour le catalogue de services, mais pas pour Marketplace. Maintenant, j'ai l'erreur suivante: le client --- avec l'ID d'objet - n'a pas l'autorisation d'effectuer l'action 'Microsoft.Storage/storageAccounts/listKeys/action' over scope '/ subscriptions / --- / resourcegroups / mystorageaccountrg / provid‌ ers / Microsoft.Storag‌ e / storageAccounts / my‌ storageaccount '.


ouais, ce n'est tout simplement pas assez d'autorisations. si vous souhaitez stocker ce vhd dans votre blob dans votre compte de stockage - cela doit être un blob accessible au public


Ce modèle ne nécessitait pas d'accès public à l'objet blob. ARM récupère la clé d'accès à partir du stockage du compte source et la fournit au script ps1 qui l'utilise pour accéder. Problème d'accès au stockage du compte depuis ARM. Dans les paramètres de l'application Marketplace, j'ai spécifié l'ID de groupe avec le droit de propriétaire en tant que principal.


ce compte de stockage est censé être dans votre client d'abonnement. il n'y a aucun moyen qui fonctionne.


Merci. En conséquence, l'objet blob (image) doit avoir un accès public pour être copié par l'application Marketplace vers le stockage d'un autre abonnement. C'est regrettable.


Eh bien, puisqu'il s'agit d'une offre publique (marché), cela ne fait aucune différence (un peu).


Offtop: vous ne comprenez pas quel type d'application gérée peut vendre sur Azure Marketplace si vous ne pouvez pas y mettre d'image personnalisée? :)


Eh bien, il y a plusieurs façons de voir cela, je méprise personnellement les images personnalisées (trop de tracas sans gain). mon approche est la suivante: utiliser des images de base et les configurer.



1
votes

Il semble que quelque chose ne va pas avec le niveau d'accès au conteneur d'objets blob. Vérifiez-le s'il vous plaît, il devrait être public, pas privé. Vous ne devez donc pas stocker de secrets dans votre image.


1 commentaires

Cela n'a pas aidé. Il semble que vhd ne doit se trouver que dans le même abonnement.



1
votes

Ceci n'est pas autorisé sur la place de marché (la certification échouera). Toutes les images VM utilisées dans une offre de marché (application gérée ou modèle de solution) doivent être publiées sur Azure Marketplace en tant qu'offre de VM. Il peut être masqué (afin que les utilisateurs ne déploient pas l'image directement) mais doit toujours être sur le marché.


6 commentaires

Merci. Comment (si possible) puis-je utiliser des images de l'offre VM dans mon application gérée publiée sur Marketplace?


Une autre question: comment puis-je masquer l'offre de VM de Marketplace?


Vous avez 2 options - l'une consiste à utiliser une offre «privée», ce qui signifie que vous mettriez les abonnements sur liste blanche pour y avoir accès - l'autre consiste simplement à marquer l'image de la VM comme masquée lors de sa publication. Les images cachées sont toujours disponibles par programme, mais pas dans aucune UX.


Merci pour la réponse. J'ai créé une offre de VM et y ai ajouté mes VM. Les marque cachés. Ça marche pour moi.


Cela ne semble pas fonctionner pour nous - masquer l'image fait maintenant échouer l'application Azure


si vous voulez m'envoyer un email avec votre offreId je peux jeter un oeil ...