Azure市场:是否可以在托管应用程序报价中使用图像?

时间:2019-01-23 14:34:39

标签: azure azure-resource-manager azure-marketplace azure-managed-disk

我创建了Azure托管应用程序。我使用mainTemplate.json中的托管映像来创建新的VM,例如:

{
    "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')]"
            }
        },
        ...
    }
}

这在服务目录中效果很好。但是,当我尝试从Azure Marketplace部署应用程序时,出现下一个错误:

源Blob https://sdfasdfasdf.blob.core.windows.net/images/myserver.vhd不属于订阅******中的存储帐户。

在Azure FAQ中,我发现下一个:

问:我可以在Azure存储帐户中使用VHD文件来创建具有其他订阅的托管磁盘吗?

A:是的。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

这仅适用于一些怪癖。基本上,您需要执行类似于this的操作。因此,请使用某种第三方机制在客户订阅中创建图像。您不能跨订阅使用图片(至少在撰写本文时如此)。

答案 1 :(得分:1)

似乎对Blob容器的访问级别有问题。请检查它,它应该是公开的,而不是私有的。因此,您不应在图像中存储任何秘密。

答案 2 :(得分:1)

在市场中不允许这样做(将使认证失败)。市场商品(托管的应用程序或解决方案模板)中使用的所有虚拟机映像都必须作为虚拟机商品发布到Azure市场。它可以隐藏(因此用户不必直接部署该映像),但仍需要在市场上出售。