Отправить ответ обратно клиенту после вызова API Google Compute Engine в узле JS

Я пытаюсь получить сведения о кластере Kubernetes из облака Google с помощью облака Google API Kubernetes для узла js.

Ниже приведен пример, который я нашел в документации Google.

var google = require('googleapis');
var container = google.container('v1');

authorize(function(authClient) {
  var request = {
     projectId: 'my-project-id',  
     zone: 'my-zone',  
     clusterId: 'my-cluster-id',  
     auth: authClient,
  };

  container.projects.zones.clusters.get(request, function(err, response){
    if (err) {
       console.error(err);
    return;
  }

// TODO: Change code below to process the `response` object and send the detail back to client.

  console.log(JSON.stringify(response, null, 2));
  });
});

function authorize(callback) {
   google.auth.getApplicationDefault(function(err, authClient) {
     if (err) {
       console.error('authentication failed: ', err);
       return;
   }
   if (authClient.createScopedRequired && authClient.createScopedRequired()) {
       var scopes = ['https://www.googleapis.com/auth/cloud-platform'];
       authClient = authClient.createScoped(scopes);
   }
   callback(authClient);
  });
}

Поскольку API Google get является асинхронной функцией, как я могу вернуть ответ от API клиенту.

1 ответ

Вопрос в том, что вы хотите сделать с данными? Проблема не в том, что API является асинхронным или нет, этот фрагмент кода должен возвращать в консоли тот же JSON, который вы получили бы с помощью этого запроса:

GET https://container.googleapis.com/v1beta1/projects/[PROJECT ID]/locations/[ZONE]/clusters/[CLUSTER NAME]

Функция и обратный вызов должны заботиться о том, что она асинхронная.

Другие вопросы по тегам