Получение HTTP-ошибки 403 - неверный токен доступа при попытке доступа к кластеру через блоки данных Azure - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь получить доступ к искровому кластеру блоков данных Azure с помощью сценария Python, который принимает токен в качестве входных данных, сгенерированных с помощью пользовательских настроек блоков данных, и вызывает метод Get для получения сведений о кластере вместе с идентификатором кластера.

Ниже приведен фрагмент кода.Как показано, я создал кластер в зоне южного центра.

import requests
headers = {"Authorization":"Bearer dapiad************************"}
data=requests.get("https://southcentralus.azuredatabricks.net/api/2.0/clusters/get?cluster_id=**************",headers=headers).text
print data

Ожидаемый результат должен дать полную информацию о кластере, например.{"cluster_id":"0128-******","spark_context_id":3850138716505089853,"cluster_name":"abcdxyz","spark_version":"5.1.x-scala2.11","spark_conf":{"spark.databricks.delta.preview.enabled":"true"},"node_type_id" and so on .....}

Приведенный выше код работает, когда я выполняю код в коллаборации Google, тогда как он не работает с моей локальной IDE, то есть в режиме ожидания.Выдает ошибку HTTP 403, указав следующее:

<code><p>Problem accessing /api/2.0/clusters/get. Reason:
<pre>    Invalid access token.

Может кто-нибудь помочь мне решить проблему?Я застрял в этой части и не могу получить доступ к кластеру через API.

1 Ответ

0 голосов
/ 05 февраля 2019

Это может быть связано с проблемой кодировки при передаче секрета.Пожалуйста, посмотрите на эту проблему и как ее решить.Несмотря на то, что разрешение, которое они дали для AWS, оно может быть аналогичным и для Azure.Ваш секрет может иметь "/", который вы должны заменить.

В последнем обновлении известна проблема, связанная с символом «+» в секретных ключах.В частности, мы больше не поддерживаем экранирование «+» в «% 2B», что делают некоторые библиотеки кодирования URL.

Текущий наилучший способ кодирования вашего секретного ключа AWS - просто

* 1007.*

Пример скрипта Python приведен ниже:

New_Secret_key = "MySecret/".replace("/","%2F")

https://forums.databricks.com/questions/6590/s3serviceexception-raised-when-accessing-via-mount.html

https://forums.databricks.com/questions/6621/responsecode403-responsemessageforbidden.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...