Это минимальный рабочий пример кода Python, который выполняется прямо перед сбоем:
Код: Выделить всё
SAS_TOKEN = os.environ["SAS_TOKEN"]
credential = AzureSasCredential(SAS_TOKEN)
account_name = "ACCOUNT_NAME"
account_url = f"https://{account_name}.blob.core.windows.net"
container_name = "CONTAINER_NAME"
blob_service_client = BlobServiceClient(account_url, credential=credential)
container = blob_service_client.get_container_client(container_name)
parquet_names = container.list_blob_names(name_starts_with="PATTERN")
list_of_parquet = list(parquet_names)
Код: Выделить всё
File "/home/vsts/work/1/s/./tests/run_tests.py", line 24, in access_datalake_locally
list_of_parquet = list(parquet_names)
File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/azure/core/paging.py", line 123, in __next__
return next(self._page_iterator)
File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/azure/core/paging.py", line 75, in __next__
self._response = self._get_next(self.continuation_token)
File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/azure/storage/blob/_list_blobs_helper.py", line 175, in _get_next_cb
process_storage_error(error)
File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/azure/storage/blob/_shared/response_handlers.py", line 186, in process_storage_error
exec("raise error from None") # pylint: disable=exec-used # nosec
File "", line 1, in
azure.core.exceptions.ClientAuthenticationError: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
- Этот объект parquet_names действительно не любит, когда меня приводят к списку.
- Я делаю что-то нелепое, когда создаю этот объект учетных данных . (Я попробовал blob_service_client = BlobServiceClient(account_url, credential=SAS_TOKEN. Возникает точно такая же ошибка.)
Переменная среды SAS_TOKEN неверна.
Подробнее здесь: https://stackoverflow.com/questions/791 ... he-contain