2017-10-12 78 views
1

我試圖使用gcloud部署管理器來部署自定義實例的模板,但我不斷收到此錯誤:谷歌部署管理問題:無法創建實例模板

 
ERROR: (gcloud.deployment-manager.deployments.update) Error in Operation [operation-1507833758152-55b5de788f540-e3be8bf6-a792d98e]: errors: 
- code: RESOURCE_ERROR 
    location: /deployments/my-project/resources/worker-template 
    message: '{"ResourceType":"compute.v1.instanceTemplate","ResourceErrorCode":"400","ResourceErrorMessage":{"code":400,"errors":[{"domain":"global","message":"Invalid 
    value for field ''resource.properties'': ''''. Instance Templates must provide 
    instance properties.","reason":"invalid"}],"message":"Invalid value for field 
    ''resource.properties'': ''''. Instance Templates must provide instance properties.","statusMessage":"Bad 
    Request","requestPath":"https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates","httpMethod":"POST"}}' 

我的Python generate_config功能是這樣的:

 
def generate_config(context): 

    resources = [{ 
     'type': 'compute.v1.instanceTemplate', 
     'name': 'worker-template', 
     'properties': { 
      'zone': context.properties['zone'], 
      'description': 'Worker Template', 
      'machineType': context.properties['machineType'], 
      'disks': [{ 
       'deviceName': 'boot', 
       'type': 'PERSISTENT', 
       'boot': True, 
       'autoDelete': True, 
       'initializeParams': { 
        'sourceImage': '/'.join([ 
         context.properties['compute_base_url'], 
         'projects', context.properties['os_project'], 
         'global/images/family', context.properties['os_project_family'] 
        ]) 
       } 
      }], 
      'networkInterfaces': [{ 
       'network': '$(ref.' + context.properties['network'] + '.selfLink)', 
       'accessConfigs': [{ 
        'name': 'External NAT', 
        'type': 'ONE_TO_ONE_NAT' 
       }] 
      }] 
     } 
    }] 

    return {'resources': resources} 

屬性不爲空,所以錯誤信息沒有多大意義。有任何想法嗎?

Thx!

回答

1

閱讀this example後,我就發現,compute.v1.instanceTemplate正確的結構是:

 
    ... 
    'type': 'compute.v1.instanceTemplate', 
    'name': 'worker-template', 
    'properties': { 
     'project': 'my-project', 
     'properties': { 
      'zone': context.properties['zone'], 
      ... 
     } 
    } 
    ... 

結構如下this doc

相關問題