如何通过 api 创建 azure 虚拟机?? (不是经典的,是在新的 Azure 管理门户上的那个)

How to create azure virtual machine via api?? (not the classic one, the one which on new azure manage portal)

我想通过 api 或 python sdk 创建 azure 的新虚拟机,这是我们在 azure 的新管理门户上拥有的一个,它允许我使用操作机器的 network security group 在门户网站上。谢谢! enter image description here

您应该使用 Azure 资源管理模板,它使您能够使用您希望创建的环境的声明形式 模板的描述在这里 https://azure.microsoft.com/en-us/documentation/articles/resource-group-authoring-templates/ 您会在 GitHub 上找到许多示例(查找 azure-quickstart-templates)

如果您仍希望使用 python SDK,则必须进行相应的 REST API 调用。关于这种方式的一篇不错的文章在这里: http://blogs.msdn.com/b/scicoria/archive/2015/02/12/azure-resource-manager-creating-an-iaas-vm-within-a-vnet.aspx

希望对您有所帮助 最好的祝福 斯蒂芬

您可以使用 Visual Studio 资源组项目,这将帮助您为 VM 生成 JSON 模板,您可以直接使用 Powershell 或 API 提交模板,

{
  "apiVersion": "2015-06-15",
  "type": "Microsoft.Compute/virtualMachines",
  "name": "[variables('vmName')]",
  "location": "[resourceGroup().location]",
  "tags": {
    "displayName": "VirtualMachine"
  },
  "dependsOn": [
    "[concat('Microsoft.Storage/storageAccounts/', variables('vhdStorageName'))]",
    "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
  ],
  "properties": {
    "hardwareProfile": {
      "vmSize": "[variables('vmSize')]"
    },
    "osProfile": {
      "computerName": "[variables('vmName')]",
      "adminUsername": "[parameters('adminUsername')]",
      "adminPassword": "[parameters('adminPassword')]"
    },
    "storageProfile": {
      "imageReference": {
        "publisher": "[variables('imagePublisher')]",
        "offer": "[variables('imageOffer')]",
        "sku": "[parameters('windowsOSVersion')]",
        "version": "latest"
      },
      "osDisk": {
        "name": "osdisk",
        "vhd": {
          "uri": "[concat('http://', variables('vhdStorageName'), '.blob.core.windows.net/', variables('vhdStorageContainerName'), '/', variables('OSDiskName'), '.vhd')]"
        },
        "caching": "ReadWrite",
        "createOption": "FromImage"
      }
    },
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
        }
      ]
    },
    "diagnosticsProfile": {
      "bootDiagnostics": {
        "enabled": true,
        "storageUri": "[concat('http://', variables('diagnosticsStorageName'), '.blob.core.windows.net')]"
      }
    }
  },

为了力量 Shell 脚本

# Create or update the resource group using the specified template file and template parameters file

New-AzureRmResourceGroup -Name $ResourceGroupName -Location $ResourceGroupLocation -Verbose -Force -ErrorAction Stop

New-AzureRmResourceGroupDeployment -Name ((Get-ChildItem $TemplateFile).BaseName + '-' + ((Get-Date).ToUniversalTime()).ToString('MMdd-HHmm')) -ResourceGroupName $ResourceGroupName -TemplateFile $TemplateFile -TemplateParameterFile $TemplateParametersFile @可选参数` -强制-详细