Drest-Ausgabe einem API-Tab hinzufügen

In dieser Anleitung wird anhand eines Beispiels erläutert, wie einem API-Tab eine Drest-Ausgabe hinzugefügt wird.

Client-VM erstellen

In diesem Beispiel wird eine Client-VM (vm-client) erstellt, die sich in derselben Region wie die Back-End-VMs (Server) befindet. Der Client validiert die Konfiguration des Load-Balancers und demonstriert das erwartete Verhalten, wie im Abschnitt "Test" beschrieben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf Instanz erstellen.
  3. Legen Sie als Name vm-client fest.
  4. Setzen Sie Zone auf us-west1-a.
  5. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten und nehmen Sie die folgenden Änderungen vor:
    • Klicken Sie auf Vernetzung und fügen Sie allow-ssh an die Netzwerk-Tags hinzu.
    • Klicken Sie unter Netzwerkschnittstellen auf die Schaltfläche "Bearbeiten", nehmen Sie die folgenden Änderungen vor und klicken Sie auf Fertig:
      • Netzwerk: lb-network
      • Subnetz: lb-subnet
      • Primäre interne IP: flüchtig (automatisch)
      • Externe IP: sitzungsspezifisch
  6. Klicken Sie auf Erstellen.

gcloud

Die Client-VM kann sich in einer beliebigen Zone in derselben Region wie der Load-Balancer befinden. Außerdem kann sie jedes Subnetz in dieser Region verwenden. In diesem Beispiel befindet sich der Client in der Zone us-west1-a und verwendet dasselbe Subnetz wie die Back-End-VMs.

gcloud compute instances create vm-client \
    --zone=us-west1-a \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=lb-subnet

API

Stellen Sie eine POST-Anfrage an die Methode instances.insert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • 'PROJECT_ID': Ihre Projekt-ID.
  • 'ZONE': us-west1-a
  • 'NETWORK': lb-network
  • 'SUBNET': lb-subnet

HTTP-Methode und URL:

POST https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances

JSON-Text anfordern:

{
  "kind": "compute#instance",
  "name": "`VM_NAME`",
  "zone": "projects/`PROJECT_ID`/zones/`ZONE`",
  "machineType": "projects/`PROJECT_ID`/zones/`ZONE`/machineTypes/n1-standard-1",
  "displayDevice": {
    "enableDisplay": false
  },
  "metadata": {
    "kind": "compute#metadata",
    "items": []
  },
  "tags": {
    "items": []
  },
  "disks": [
    {
      "kind": "compute#attachedDisk",
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "autoDelete": true,
      "deviceName": "`VM_NAME`",
      "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20220719",
        "diskType": "projects/`PROJECT_ID`/zones/`ZONE`/diskTypes/pd-standard",
        "diskSizeGb": "10"
      },
      "diskEncryptionKey": {}
    }
  ],
  "canIpForward": false,
  "networkInterfaces": [
    {
      "kind": "compute#networkInterface",
      "subnetwork": "projects/`PROJECT_ID`/regions/us-central1/subnetworks/`SUBNET`",
      "accessConfigs": [
        {
          "kind": "compute#accessConfig",
          "name": "External NAT",
          "type": "ONE_TO_ONE_NAT",
          "networkTier": "PREMIUM"
        }
      ],
      "aliasIpRanges": []
    }
  ],
  "description": "",
  "labels": {},
  "scheduling": {
    "preemptible": false,
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "nodeAffinities": []
  },
  "deletionProtection": false,
  "reservationAffinity": {
    "consumeReservationType": "ANY_RESERVATION"
  },
  "serviceAccounts": [
    {
      "email": "893700239234-compute@developer.gserviceaccount.com",
      "scopes": [
        "https://www.googleapis.com/auth/devstorage.read_only",
        "https://www.googleapis.com/auth/logging.write",
        "https://www.googleapis.com/auth/monitoring.write",
        "https://www.googleapis.com/auth/servicecontrol",
        "https://www.googleapis.com/auth/service.management.readonly",
        "https://www.googleapis.com/auth/trace.append"
      ]
    }
  ]
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
 "id": "8061072881391620712",
 "name": "operation-1565289606387-58f9f62f5989c-e582f586-6d22f38d",
 "zone": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`",
 "operationType": "insert",
 "targetLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances/`VM_NAME`",
 "targetId": "2977231178150564457",
 "status": "RUNNING",
 "user": "betsyl@google.com",
 "progress": 0,
 "insertTime": "2019-08-08T11:40:07.728-07:00",
 "startTime": "2019-08-08T11:40:07.731-07:00",
 "selfLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38d",
 "kind": "compute#operation"
}

Nächste Schritte

  • Einstieg in Drest