삭제를 설정하려고, 나는 실행중인 인스턴스 내-INST 루트 영구 디스크 연결 PD-내-INST와 명명했다. 파이썬 API 클라이언트를 사용하여 디스크의 AutoDelete 옵션을 False로 설정하고 싶습니다. 인스턴스 생성시 또는 gcloud compute
도구를 사용하여이 옵션을 설정할 수 있지만 내 응용 프로그램에서는 Python API를 사용하여 인스턴스를 만든 후에이 옵션을 설정할 수 있어야합니다. 내가 요청을 전송하는 데 사용하는 코드는 다음과 같습니다 내가 할잘못된 값 디스크 자동 구글 컴퓨 트 엔진에 옵션
request = gce_service.instances().setDiskAutoDelete(autoDelete=False,
deviceName='pd-my-inst', project=PROJECT_ID, instance='my-inst', zone=DEFAULT_ZONE)
response = gce_service.execute(http=http_auth)
응답 그래서 제대로 전송 된 API Reference에서 상세한입니다. 그런 다음 에 제공된 _blocking_call()
함수와 마찬가지로 응답의 ['status']
필드가 'DONE'
일 때까지 zoneOperations().get()
메서드를 사용합니다. 내가 얻는 영역 작업 객체 (일부는 개인 정보 보호에 대한 회피) 다음이다 :
{
u'status': u'DONE',
u'kind': u'compute#operation',
u'name': u'operation-1412647209801-504cb8f221529-...',
u'zone': u'https://www.googleapis.com/compute/v1/projects/MY-PROJECT-NAME/zones/us-central1-a',
u'startTime': u'2014-10-06T19:00:10.094-07:00',
u'httpErrorMessage': u'BAD REQUEST',
u'insertTime': u'2014-10-06T19:00:09.908-07:00',
u'targetId': u'1543069760...',
u'targetLink': u'https://www.googleapis.com/compute/v1/projects/MY-PROJECT-NAME/zones/us-central1-a/instances/my-inst',
u'operationType': u'setDiskAutoDelete',
u'error':
{
u'errors':
[{
u'message': u"Invalid value for field 'disk': 'pd-my-inst'. ",
u'code': u'INVALID_FIELD_VALUE'
}]
},
u'progress': 100,
u'endTime': u'2014-10-06T19:00:10.464-07:00',
u'httpErrorStatusCode': 400,
u'id': u'998580128...',
u'selfLink': u'https://www.googleapis.com/compute/v1/projects/MY-PROJECT-NAME/zones/us-central1-a/operations/operation-1412647209801-504cb8f221529-...',
u'user': u'MY_USERNAME'}
나는 또한 setDiskAutoDelete()
방법에 대한 웹 기반의 API Explorer를 사용하여 요청을 보내려고 내가 똑같은 오류가 발생했습니다.
API 참조에서 요청한대로 디스크 장치 이름을 제공했기 때문에 왜 INVALID_FIELD_VALUE 오류가 발생하는지 이해할 수 없습니다. 이 분야에 대해 제가 빠진 것이 있습니까? 인스턴스 생성시 장치 이름이 주어진 이름과 다른가요?
도움 주셔서 감사합니다. :)