Connettore per Compute Engine

Connettore Workflows che definisce la funzione integrata utilizzata per accedere a Compute Engine all'interno di un flusso di lavoro.

Per saperne di più

Per la documentazione dettagliata che include questo esempio di codice, vedi quanto segue:

Esempio di codice

YAML

# This workflow demonstrates how to use the Cloud Compute Engine connector.
# The workflow creates and starts a Compute Engine VM instance. Then it stops and deletes
# the VM instance.
# Each of these steps waits until the long-running operation of stopping or starting the VM
# is completed. After each step, an assertion about current status of the machine is made.
# Expected successful output: "SUCCESS"

main:
  params: []
  steps:
    - init:
        assign:
          - project: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
          - zone: "us-central1-a"
          - instance: "[fill in an instance name]"
          - machineType: "e2-micro"
    - insert_machine:
        call: googleapis.compute.v1.instances.insert
        args:
          project: ${project}
          zone: ${zone}
          body:
            name: ${instance}
            machineType: ${"zones/" + zone + "/machineTypes/" + machineType}
            disks:
              - initializeParams:
                  sourceImage: "projects/debian-cloud/global/images/debian-10-buster-v20201112"
                boot: true
                autoDelete: true
            networkInterfaces:
              - network: "global/networks/default"
    - start_machine:
        call: googleapis.compute.v1.instances.start
        args:
          instance: ${instance}
          project: ${project}
          zone: ${zone}
    - assert_running:
        call: assert_machine_status
        args:
          expected_status: "RUNNING"
          project: ${project}
          zone: ${zone}
          instance: ${instance}
    - stop_machine:
        call: googleapis.compute.v1.instances.stop
        args:
          instance: ${instance}
          project: ${project}
          zone: ${zone}
    - assert_terminated:
        call: assert_machine_status
        args:
          expected_status: "TERMINATED"
          project: ${project}
          zone: ${zone}
          instance: ${instance}
    - delete_machine:
        call: googleapis.compute.v1.instances.delete
        args:
          instance: ${instance}
          project: ${project}
          zone: ${zone}
    - the_end:
        return: "SUCCESS"

assert_machine_status:
  params: [expected_status, project, zone, instance]
  steps:
    - get_instance:
        call: googleapis.compute.v1.instances.get
        args:
          instance: ${instance}
          project: ${project}
          zone: ${zone}
        result: instance
    - compare:
        switch:
          - condition: ${instance.status == expected_status}
            next: end
    - fail:
        raise: ${"Expected VM status is " + expected_status + ". Got " + instance.status + " instead."}

Passaggi successivi

Per cercare e filtrare esempi di codice per altri prodotti Google Cloud, consulta il browser di esempio Google Cloud.