![배포 관리자를 사용하여 Compute.v1.instanceTemplate을 생성할 때 알 수 없는 누락 필드 오류가 발생합니다.](https://rvso.com/image/668046/%EB%B0%B0%ED%8F%AC%20%EA%B4%80%EB%A6%AC%EC%9E%90%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20Compute.v1.instanceTemplate%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%95%A0%20%EB%95%8C%20%EC%95%8C%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EB%88%84%EB%9D%BD%20%ED%95%84%EB%93%9C%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4..png)
배포 관리자(v2)를 사용하여 생성하려고 하는데 compute.v1.instanceTemplate
다음 오류가 발생합니다.
Unexpected response from resource of type compute.v1.instanceTemplate: 400 {statusMessage=Bad Request, errors=[{message=Invalid value for field 'resource.properties': ''. Instance Templates must provide instance properties., domain=global, reason=invalid}]}
재산이 없어졌다고 불평하는 것 같지만, 그게 어느 것인지 평생 알 수는 없습니다. 나는 다음을 살펴보았다.인스턴스 템플릿자원과고급 배포 예, 그리고 난 그렇지 않아~인 것 같다아무것도 놓치는 것이 없습니다. 그래도 나는 틀렸다는 것이 입증되면 기뻐할 것입니다.
다음은 다음을 통해 획득한 전체 리소스입니다 gcloud deployment-manager deployments describe --log-http name
.
{
"id": "redacted",
"insertTime": "2015-10-03T05:13:33.325-07:00",
"updateTime": "2015-10-03T05:42:50.152-07:00",
"name": "tpl-redacted",
"type": "compute.v1.instanceTemplate",
"update": {
"manifest": "https://www.googleapis.com/deploymentmanager/v2/projects/project-redacted/global/deployments/redacted/manifests/manifest-redacted",
"error": {
"errors": [
{
"code": "RESOURCE_ERROR",
"location": "redacted/tpl-redacted",
"message": "Unexpected response from resource of type compute.v1.instanceTemplate: 400 {statusMessage=Bad Request, errors=[{message=Invalid value for field 'resource.properties': ''. Instance Templates must provide instance properties., domain=global, reason=invalid}]}"
}
]
},
"state": "FAILED",
"intent": "CREATE_OR_ACQUIRE",
"properties": "canIpForward: true\ndisks:\n- autoDelete: true\n boot: true\n deviceName: boot\n initializeParams:\n diskSizeGb: 10\n diskType: pd-standard\n sourceImage: https://www.googleapis.com/compute/v1/projects/project-redacted/global/images/redacted-image\n mode: READ_WRITE\n type: PERSISTENT\nmachineType: https://www.googleapis.com/compute/v1/projects/project-redacted/zones/asia-east1-c/machineTypes/g1-small\nnetworkInterfaces:\n- accessConfigs: []\n network: $(ref.nw-redacted.selfLink)\nscheduling:\n automaticRestart: true\n onHostMaintenance: MIGRATE\nserviceAccounts:\n- scopes:\n - storage-ro\ntags:\n items:\n - redacted\nzone: asia-east1-c\n",
"finalProperties": "canIpForward: true\ndisks:\n- autoDelete: true\n boot: true\n deviceName: boot\n initializeParams:\n diskSizeGb: 10\n diskType: pd-standard\n sourceImage: https://www.googleapis.com/compute/v1/projects/project-redacted/global/images/redacted-image\n mode: READ_WRITE\n type: PERSISTENT\nmachineType: https://www.googleapis.com/compute/v1/projects/project-redacted/zones/asia-east1-c/machineTypes/g1-small\nnetworkInterfaces:\n- accessConfigs: []\n network: https://www.googleapis.com/compute/v1/projects/project-redacted/global/networks/nw-redacted\nscheduling:\n automaticRestart: true\n onHostMaintenance: MIGRATE\nserviceAccounts:\n- scopes:\n - storage-ro\ntags:\n items:\n - redacted\nzone: asia-east1-c\n"
}
}
다음은 인간 친화적인 버전입니다 finalProperties
.
canIpForward: true
disks:
- autoDelete: true
boot: true
deviceName: boot
initializeParams:
diskSizeGb: 10
diskType: pd-standard
sourceImage: https://www.googleapis.com/compute/v1/projects/project-redacted/global/images/redacted-image
mode: READ_WRITE
type: PERSISTENT
machineType: https://www.googleapis.com/compute/v1/projects/project-redacted/zones/asia-east1-c/machineTypes/g1-small
networkInterfaces:
- accessConfigs: []
network: https://www.googleapis.com/compute/v1/projects/project-redacted/global/networks/nw-redacted
scheduling:
automaticRestart: true
onHostMaintenance: MIGRATE
serviceAccounts:
- scopes:
- storage-ro
tags:
items:
- redacted
zone: asia-east1-c
어떤 아이디어가 있나요? 또는 성공적인 compute.v1.instanceTemplate
배포 사례를 높이 평가하겠습니다.
답변1
고급 배포 사례 중 하나에는 실제로Compute.v1.instanceTemplate 사용 예. a 대신 zone
리소스는 a를 지정해야 합니다 project
. 이는 실제로 더 의미가 있지만 해당 예를 제외하고는 어디에도 문서화되어 있지 않은 것 같습니다. 그러나 덜 현명하게도 실제 instanceTemplate 매개변수는 내부에 배치됩니다.또 다른속성 개체. 이것이 어디서 왔는지는 확실하지 않지만 최종 작업 jinja 템플릿은 다음과 같습니다(일부 필드는 기본값을 사용하므로 실제로 생략될 수 있음).
resources:
- name: {{ env["name"] }}
type: compute.v1.instanceTemplate
properties:
project: {{ env["project"] }}
properties:
machineType: {{ properties["machineType"] }}
canIpForward: true
scheduling:
automaticRestart: true
onHostMaintenance: MIGRATE
preemptible: false
tags:
items:
- redacted
disks:
- deviceName: boot
boot: true
autoDelete: true
mode: READ_WRITE
type: PERSISTENT
initializeParams:
diskSizeGb: 10
diskType: pd-standard
sourceImage: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/global/images/redacted
networkInterfaces:
- network: $(ref.{{ properties["network"] }}.selfLink)
serviceAccounts:
- email: default
scopes:
- https://www.googleapis.com/auth/devstorage.read_only