首页 > 解决方案 > 如何通过 REST API 创建具有公共 IP 地址的 Azure VM

问题描述

如何通过 API 使用请求创建具有公共 IP 地址的 Azure VM。这是当前的请求正文,但我不知道需要添加什么才能让 VM 拥有公共 IP 地址 - 谢谢

{
  "location": "ukwest",
  "properties": {
    "hardwareProfile": {
      "vmSize": "Standard_B1s"
    },
    "storageProfile": {
      "imageReference": {
        "id": "/subscriptions/28f23ba2-c344-448c-808b-e45a97a29764/resourceGroups/main/providers/Microsoft.Compute/images/ukproxy"
      },
      "osDisk": {
        "caching": "ReadWrite",
        "managedDisk": {
          "storageAccountType": "Standard_LRS"
        },
        "name": "myVMosdisk",
        "createOption": "FromImage"
      }
    },
    "osProfile": {
      "adminUsername": "user",
      "computerName": "user",
      "adminPassword": "password!"
    },
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "/subscriptions/28f23ba2-c344-448c-808b-e45a97a29764/resourceGroups/main/providers/Microsoft.Network/networkInterfaces/nic",
          "properties": {
            "primary": true
          }
        }
      ]
    }
  },
  "name": "VM"
}

标签: azureazure-devopscloudvirtual-machine

解决方案


公共 IP 只是关联到网络接口。因此,您在创建 VM 时无需担心公共 IP。您所要做的就是创建公共 IP 并将其关联到属于 VM 的接口。

例如,创建网络接口时的请求正文将如下所示:

{
  "name": "test-nic",
  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic",
  "location": "eastus",
  "properties": {
    "provisioningState": "Succeeded",
    "ipConfigurations": [
      {
        "name": "ipconfig1",
        "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic/ipConfigurations/ipconfig1",
        "properties": {
          "provisioningState": "Succeeded",
          "privateIPAddress": "172.20.2.4",
          "privateIPAllocationMethod": "Dynamic",
          "publicIPAddress": {
            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/test-ip"
          },
          "subnet": {
            "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/rg1-vnet/subnets/default"
          },
          "primary": true,
          "privateIPAddressVersion": "IPv4"
        }
      }
    ],
    "dnsSettings": {
      "dnsServers": [],
      "appliedDnsServers": []
    },
    "enableAcceleratedNetworking": true,
    "enableIPForwarding": false
  },
  "type": "Microsoft.Network/networkInterfaces"
}

推荐阅读