Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform GCP API-machineImages.insert返回503_Google Cloud Platform_Google Compute Engine_Google Apis Explorer - Fatal编程技术网

Google cloud platform GCP API-machineImages.insert返回503

Google cloud platform GCP API-machineImages.insert返回503,google-cloud-platform,google-compute-engine,google-apis-explorer,Google Cloud Platform,Google Compute Engine,Google Apis Explorer,在我的应用程序中,我从机器上创建图像,以便以后重用和创建实例 我有以下JAVA代码来创建图像: public static String createGCPImage(String imageName, String projectId, String machineName) throws Exception { String machineNameUrl = "projects/" + projectId + "/global/instances

在我的应用程序中,我从机器上创建图像,以便以后重用和创建实例

我有以下JAVA代码来创建图像:

public static String createGCPImage(String imageName, String projectId, String machineName) throws Exception {
        String machineNameUrl = "projects/" + projectId + "/global/instances/" + machineName;
        JsonObject imageRequest = new JsonObject();
        imageRequest.addProperty("name", imageName);
        imageRequest.addProperty("sourceInstance", machineNameUrl);
        String url = "https://compute.googleapis.com/compute/beta/projects/" + projectId + "/global/machineImages";
        
        ProjectOperation po = new ProjectOperation();
        po.setProjectId(order.getProject()).setServiceAccount();
        String serviceAccount = po.getServiceAccount();
        InputStream credentialStream = new ByteArrayInputStream(serviceAccount.getBytes());
        GoogleCredentials credentials = GoogleCredentials.fromStream(credentialStream);
        List<String> COMPUTE_SCOPES = Collections.singletonList(ComputeScopes.COMPUTE);
        if (credentials.createScopedRequired()) {
            credentials = credentials.createScoped(COMPUTE_SCOPES);
        }
        
        Gson gson = new Gson();
        String requestBody = gson.toJson(imageRequest);
        final HttpContent content = new ByteArrayContent("application/json", requestBody.getBytes("UTF8") );
        HttpRequestFactory factory = new NetHttpTransport().createRequestFactory(new HttpCredentialsAdapter(credentials));
        HttpRequest request = factory.buildPostRequest(new GenericUrl(url), content);
        HttpResponse httpResponse = request.execute();

        return httpResponse.getStatusMessage();
    }


当我从GCP API资源管理器尝试相同的请求时,我得到了相同的错误:

{
  "error": {
    "code": 503,
    "message": "Internal error. Please try again or contact Google Support. (Code: '5B7B0120B5674.A1CBB85.7900FC0D')",
    "errors": [
      {
        "message": "Internal error. Please try again or contact Google Support. (Code: '5B7B0120B5674.A1CBB85.7900FC0D')",
        "domain": "global",
        "reason": "backendError"
      }
    ]
  }
}

请求正文如下:

{
  "name": "test-machine-image-name",
  "sourceInstance": "https://www.googleapis.com/compute/v1/projects/devopsucp/global/instances/urigcpdev1"
}

503是一个后端错误,可能在您尝试使用API时,它不可用

我在自己的项目中尝试了这个方法。我收到了200的输出,所以对我来说很有效

但如果它仍然不适合您,您可以:

  • 创建实例的快照:

  • 然后,您可以从持久磁盘的快照创建磁盘映像。

  • 或者您可以使用此任务。

    我发现了错误! 在请求正文中,我将sourceInstance指定为:

    "https://www.googleapis.com/compute/v1/projects/devopsucp/global/instances/urigcpdev1"
    
    应该是:

    "https://www.googleapis.com/compute/v1/projects/devopsucp/zones/{machineZone}/instances/urigcpdev1"
    
    修复instanceName参数后,我将收到一个200响应,并按预期创建映像:)


    我之前得到的503响应非常混乱…

    1)这可能是一个暂时性错误。请等待几个小时,然后重试。2) 发布HTTP Post请求的数据部分。感谢您的响应,我在上面添加了Post请求正文1)是
    devopusucp
    项目ID还是项目名称?它应该是项目ID。2)您的帖子正文看起来正确。这可能是一个临时错误。事实上,这是正确的项目ID。当我插入错误的projectID时,我收到一个404响应。我的问题是我想完全复制一个多磁盘实例,而不仅仅是从一个持久磁盘创建一个映像。奇怪的是,我在尝试云接口时也遇到了这个错误(在尝试这个API时)
    "https://www.googleapis.com/compute/v1/projects/devopsucp/zones/{machineZone}/instances/urigcpdev1"