适用于 Compute Engine 的连接器
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
定义用于在工作流内访问 Compute Engine 的内置函数的 Workflows 连接器。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],[],[],[],null,["# Connector for Compute Engine\n\nWorkflows connector that defines the built-in function used to access Compute Engine within a workflow.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Compute Engine API Connector Overview](/workflows/docs/reference/googleapis/compute/Overview)\n\nCode sample\n-----------\n\n### YAML\n\n # This workflow demonstrates how to use the Compute Engine connector:\n # Create and start a Compute Engine VM instance, then stop and delete the VM\n # Each step waits until the long-running operation of stopping or starting the VM completes\n # After each step, the machine status is verified\n # Expected output: \"SUCCESS\"\n main:\n params: []\n steps:\n - init:\n assign:\n - project: ${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}\n - zone: \"us-central1-a\"\n - instance: \"INSTANCE_NAME\" # replace INSTANCE_NAME placeholder\n - machineType: \"e2-micro\"\n - insert_machine:\n call: googleapis.compute.v1.instances.insert\n args:\n project: ${project}\n zone: ${zone}\n body:\n name: ${instance}\n machineType: ${\"zones/\" + zone + \"/machineTypes/\" + machineType}\n disks:\n - initializeParams:\n sourceImage: \"projects/debian-cloud/global/images/debian-10-buster-v20201112\"\n boot: true\n autoDelete: true\n networkInterfaces:\n - network: \"global/networks/default\"\n - start_machine:\n call: googleapis.compute.v1.instances.start\n args:\n instance: ${instance}\n project: ${project}\n zone: ${zone}\n - assert_running:\n call: assert_machine_status\n args:\n expected_status: \"RUNNING\"\n project: ${project}\n zone: ${zone}\n instance: ${instance}\n - stop_machine:\n call: googleapis.compute.v1.instances.stop\n args:\n instance: ${instance}\n project: ${project}\n zone: ${zone}\n - assert_terminated:\n call: assert_machine_status\n args:\n expected_status: \"TERMINATED\"\n project: ${project}\n zone: ${zone}\n instance: ${instance}\n - delete_machine:\n call: googleapis.compute.v1.instances.delete\n args:\n instance: ${instance}\n project: ${project}\n zone: ${zone}\n - the_end:\n return: \"SUCCESS\"\n\n assert_machine_status:\n params: [expected_status, project, zone, instance]\n steps:\n - get_instance:\n call: googleapis.compute.v1.instances.get\n args:\n instance: ${instance}\n project: ${project}\n zone: ${zone}\n result: instance\n - compare:\n switch:\n - condition: ${instance.status == expected_status}\n next: end\n - fail:\n raise: ${\"Expected VM status is \" + expected_status + \". Received \" + instance.status + \" instead.\"}\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=workflows)."]]