Azure: detecta la región de la máquina virtual en la máquina virtual

Azure: detecta la región de la máquina virtual en la máquina virtual

Quiero implementar un conjunto de escalado en dos regiones diferentes en Azure desde una imagen de máquina virtual personalizada. He descubierto cómo hacerlo, pero me gustaría cambiar la información de configuración según la región en la que se implemente el conjunto de escalado. ¿Cómo puedo detectar la región de una máquina virtual desde esa máquina virtual?

La máquina virtual ejecuta CentOS.

Respuesta1

Existe una forma sencilla y agradable de hacer esto: utilizar el servicio de metadatos dentro de la VM. Puede ejecutar este comando desde dentro de la VM (la URL es la misma para todas las VM)

curl -H Metadata:true http://169.254.169.254/metadata/instance?api-version=2017-03-01

y devolverá un objeto json con datos sobre la VM, incluida la región:

{
  "compute": {
    "location": "westus",
    "name": "avset2",
    "offer": "UbuntuServer",
    "osType": "Linux",
    "placementGroupId": "",
    "platformFaultDomain": "1",
    "platformUpdateDomain": "1",
    "publisher": "Canonical",
    "resourceGroupName": "myrg",
    "sku": "16.04-LTS",
    "subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "tags": "",
    "version": "16.04.201708030",
    "vmId": "13f56399-bd52-4150-9748-7190aae1ff21",
    "vmScaleSetName": "",
    "vmSize": "Standard_D1",
    "zone": "1"
  },
  "network": {
    "interface": [
      {
        "ipv4": {
          "ipAddress": [
            {
              "privateIpAddress": "10.1.2.5",
              "publicIpAddress": "X.X.X.X"
            }
          ],
          "subnet": [
            {
              "address": "10.1.2.0",
              "prefix": "24"
            }
          ]
        },
        "ipv6": {
          "ipAddress": []
        },
        "macAddress": "000D3A36DDED"
      }
    ]
  }
}

Respuesta2

Usarjqpara obtener solo el nombre de la región

curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance/compute?api-version=2021-02-01" | jq '.location'

información relacionada