Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Azure ARM创建公共虚拟机映像?_Azure_Azure Virtual Machine_Azure Resource Manager - Fatal编程技术网

如何使用Azure ARM创建公共虚拟机映像?

如何使用Azure ARM创建公共虚拟机映像?,azure,azure-virtual-machine,azure-resource-manager,Azure,Azure Virtual Machine,Azure Resource Manager,我想创建一个任何人都可以使用armrestapi启动的虚拟机 我该怎么做?我找不到说明。显然可以在此处创建公共虚拟机映像:有几种方法可以做到这一点。假设你有一个网站/应用程序等在前端,它只是后端通信你正在寻找 先决条件 此处的选项假定您有一个活动的Microsoft Azure帐户,并且能够通过门户在那里创建VM。一旦到了可以这样做的阶段,就可以使用RESTAPI来创建一台机器 选择1 您可以使用RESTAPI直接创建VM,方法是PUTing请求到此URI- https://management

我想创建一个任何人都可以使用armrestapi启动的虚拟机


我该怎么做?我找不到说明。

显然可以在此处创建公共虚拟机映像:

有几种方法可以做到这一点。假设你有一个网站/应用程序等在前端,它只是后端通信你正在寻找

先决条件 此处的选项假定您有一个活动的Microsoft Azure帐户,并且能够通过门户在那里创建VM。一旦到了可以这样做的阶段,就可以使用RESTAPI来创建一台机器

选择1 您可以使用RESTAPI直接创建VM,方法是
PUT
ing请求到此URI-

https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}?validating={true|false}&api-version={api-version}
您需要将一个JSON文档附加到该请求,该请求将定义您正在创建的机器

{  
  "id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/virtualMachines/myvm1",
  "name":"myvm1", 
  "type":"Microsoft.Compute/virtualMachines",
  "location":"westus",
  "tags": {  
    "department":"finance"
  },
  "properties": {  
    "availabilitySet": {  
      "id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/availabilitySets/myav1"
    },
    "hardwareProfile": {  
      "vmSize":"Standard_A0"
    },
    "storageProfile": {  
      "imageReference": {  
        "publisher":"MicrosoftWindowsServerEssentials",
        "offer":"WindowsServerEssentials",
        "sku":"WindowsServerEssentials",
        "version":"latest"
      },
      "osDisk": {  
        "name":"myosdisk1",
        "vhd": {  
          "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
        },
        "caching":"ReadWrite",
        "createOption":"FromImage"
      },
      "dataDisks": [ { 
         "name":"mydatadisk1", 
         "diskSizeGB":"1", 
         "lun": 0, 
         "vhd": { 
           "uri" : "http://mystorage1.blob.core.windows.net/vhds/mydatadisk1.vhd" 
         }, 
         "createOption":"Empty" 
       } ]
    },
    "osProfile": {  
      "computerName":"myvm1",
      "adminUsername":"username",
      "adminPassword":"password",
      "customData":"",
      "windowsConfiguration": {  
        "provisionVMAgent":true,
        "winRM": {
          "listeners": [ {
            "protocol": "https",
            "certificateUrl": "url-to-certificate"
          } ]
        },
        "additionalUnattendContent": {  
          "pass":"oobesystem",
          "component":"Microsoft-Windows-Shell-Setup",
          "settingName":"FirstLogonCommands|AutoLogon",
          "content":"<XML unattend content>"
        }  
        "enableAutomaticUpdates":true
      },
      "secrets":[ { 
         "sourceVault": { 
           "id": "/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1" 
         }, 
         "vaultCertificates": [ { 
           "certificateUrl": "https://myvault1.vault.azure.net/secrets/{secretName}/{secretVersion}" 
           "certificateStore": "{certificateStoreName}" 
         } ] 
       } ]
    },
    "networkProfile": {  
      "networkInterfaces": [ {  
        "id":"/subscriptions/{subscription-id}/resourceGroups/myresourceGroup1/providers /Microsoft.Network/networkInterfaces/mynic1"
      } ]
    }
  }
}

你可以在-

找到这方面的文档,这是为了详细说明@Michael B的答案:要发现可用的图像,你可以使用VMDepot,当然也可以。首先查看出版商列表,然后从那里你可以决定你想要哪些图片


您发现的URN值将是您希望在REST调用中使用的值。希望这有帮助……

任何人都可以启动的虚拟机是什么意思?您是否可以指定是否希望通过Azure portal、C#或PowerShell执行此操作?这是一些可以使用ARM REST API创建Azure VM的选项。这是一个非常模糊的问题,我怀疑您在某个地方遗漏了一点,但很难说这是什么,因为所需的信息不存在。@Duke Dougal你找到了实现这一点的方法吗?@webfort太难了,我放弃了,并采取了另一种方法来解决我的问题。不过,等式中缺少了一个很大的部分-我如何确定将运行的公共VM?VM仓库似乎没有提供我需要插入到您上面提供的数据结构中的信息。Azure Marketplace似乎也没有提供将公共虚拟机连接到您上面指定的数据结构的方法。@DukeDougal我对答案进行了一些编辑-但是它确实取决于您所说的“公共”虚拟机的含义,考虑到您使用的是Azure标记,此答案假设您希望通过Azure部署,在这种情况下,您需要有一个活动帐户,并在某个时候为您使用的资源付费。vmdepot只是一个存储虚拟机映像的存储库,vmdepot没有任何能力运行这些映像,您需要在云提供商中启动它们。
{
  "properties": {
    "templateLink": {
      "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
      "contentVersion": "1.0.0.0",
    },
    "mode": "Incremental",
    "parametersLink": {
      "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
      "contentVersion": "1.0.0.0",      
    }
  }
}