Записная книжка Databricks запускается из Node.js

Я пытаюсь вызвать API Databricks для запуска записной книжки или задания по его идентификатору с помощью конечной точки API api/2.0/jobs/run-now, но получаю сообщение об ошибке, например getaddrinfo ENOTFOUND https://adb-<workspace-id>.<random-number>.azuredatabricks.net/api/2.0/jobs/run-now. Но я даю правильный URL-адрес (ПРИМЕЧАНИЕ. Я скопировал URL-адрес из адресной строки браузера до .net в соответствии с примером, упомянутым в: Пример API задания

Ниже мой код Node.JS:

router.get('/triggerJob', (req, res) => {
    var job_payload = {
        "job_id": <Job_ID>
    }

    var options = {
        host: 'https://adb-<workspaceid>.<number>.azuredatabricks.net/api/2.0/jobs/run-now',
        body: JSON.stringify(job_payload),
        method: 'Post',
        headers: { 'Authorization': 'token' }
    }
    var data = '';
    console.log('till here')
    var request = https.request(options, function (result) {
        var body = "";
        result.on('data', function (data) {
            console.log('data came');
            body += data;
        });
        result.on('end', function () {
            console.log('ended too');
            data = JSON.parse(body);
            res.json(data);
        });
    });
    request.on('error', function (e) {
        console.log('Problem with request: ' + e.message);
    });
    request.end();
})

person Daksh    schedule 16.07.2020    source источник


Ответы (1)


Поскольку у меня есть решение для моего вопроса, я хочу поделиться им со всеми для дальнейшего обращения.

Согласно документации Microsoft: введите описание ссылки здесь

Они просят нас ввести URL-адрес с помощью https://adb-<workspaceid>.<number>.azuredatabricks.net/api/2.0/jobs/run-now, но я понял, что нам нужно нажать URL-адрес:

https: // ‹{locationname}› .azuredatabricks.net, затем api / 2.0 / jobs / run-now. Итак, ниже приведен код того же:

  const request=require("request");
  const rp=require("request-promise");
   
   const triggerJob=((res,req)=>{
        var job_payload = {
        "job_id": <Job_ID>
    }

 var options = {
        host: 'https://<locationname>.azuredatabricks.net/api/2.0/jobs/run-now',
        body: JSON.stringify(job_payload),
        method: 'Post',
        headers: { 'Content-Type':'application/jsoon','Authorization': 'Bearer token' }
    }
    var response=await rp(url,options);
    if(response!=null){
     return res.json(response)
   }
});

module.exports= triggerJob;

Я минимизирую строку кода для ясности.

person Daksh    schedule 17.07.2020