使用gcloud CLI从实例模板创建Compute Engine时资源不存在问题排查
问题:从区域实例模板创建Compute Engine实例时提示资源未找到
尝试通过gcloud CLI从已创建的it-collector-server实例模板创建Compute Engine实例时,收到错误:
ERROR: (gcloud.compute.instances.create) Could not fetch resource: - The resource 'projects/s-dev/global/instanceTemplates/it-collector-server' was not found
相关信息
- 实例模板列表(执行
gcloud compute instance-templates list):
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP it-collector-server e2-medium 2024-04-30T03:01:14.759-07:00
- 实例模板完整信息(执行
gcloud compute instance-templates list --format=json):
[ { "creationTimestamp": "2024-04-30T03:01:14.759-07:00", "description": "", "id": "12345", "kind": "compute#instanceTemplate", "name": "it-collector-server", "properties": { "canIpForward": false, "confidentialInstanceConfig": { "enableConfidentialCompute": false }, "description": "", "disks": [ { "autoDelete": true, "boot": true, "deviceName": "it-collector-server", "index": 0, "initializeParams": { "diskSizeGb": "10", "diskType": "pd-balanced", "sourceImage": "projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20240426" }, "kind": "compute#attachedDisk", "mode": "READ_WRITE", "type": "PERSISTENT" } ], "keyRevocationActionType": "NONE", "machineType": "e2-medium", "metadata": { "fingerprint": "i9go6u23i84=", "kind": "compute#metadata" }, "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "External NAT", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ], "kind": "compute#networkInterface", "name": "nic0", "network": "https://www.googleapis.com/compute/v1/projects/s-dev/global/networks/default", "stackType": "IPV4_ONLY" } ], "reservationAffinity": { "consumeReservationType": "ANY_RESERVATION" }, "scheduling": { "automaticRestart": true, "onHostMaintenance": "MIGRATE", "preemptible": false, "provisioningModel": "STANDARD" }, "serviceAccounts": [ { "email": "1234-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" ] } ], "shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": false, "enableVtpm": true }, "tags": {} }, "region": "https://www.googleapis.com/compute/v1/projects/s-dev/regions/europe-north1", "selfLink": "https://www.googleapis.com/compute/v1/projects/s-dev/regions/europe-north1/instanceTemplates/it-collector-server" } ]
- 执行的创建命令:
gcloud compute instances create my-test-vm --source-instance-template=it-collector-server
错误原因
从实例模板的selfLink可以看出,这个模板是区域级资源(存储在europe-north1区域),而默认情况下,gcloud compute instances create命令会去全局(global)资源目录查找实例模板,因此无法找到目标资源,抛出错误。
修复方法
有两种可行的解决方式:
方法1:指定实例模板所在区域
在创建命令中添加--region参数,明确指定模板所在的区域:
gcloud compute instances create my-test-vm --source-instance-template=it-collector-server --region=europe-north1
方法2:使用实例模板的完整自链接
直接将模板的完整selfLink作为--source-instance-template的参数值:
gcloud compute instances create my-test-vm --source-instance-template=https://www.googleapis.com/compute/v1/projects/s-dev/regions/europe-north1/instanceTemplates/it-collector-server
内容的提问来源于stack exchange,提问作者Europa
相关产品推荐
相关产品推荐

