Ошибка аутентификации Azure в процессах, порожденных из многопроцессорного пулаPython

Программы на Python
Ответить
Anonymous
 Ошибка аутентификации Azure в процессах, порожденных из многопроцессорного пула

Сообщение Anonymous »

У меня очень специфическая проблема с комбинацией многопроцессорной обработки + аутентификации Azure, и я не смог найти ценную открытую проблему, поэтому приступаю:
Я работаю над программой на Python, которая использует multiprocessing.Pool для ускорения вычислений.
Данные считываются и загружаются в ресурсы хранилища Azure. Учетные данные извлекаются из конфигурации, созданной заранее при запуске az login.
Все запускаются в образе Docker с использованием Ubuntu, поэтому система POSIX .
Программа работает, но иногда зависает на некоторых данных. Я провел исследование и обнаружил, что это, вероятно, связано с проблемой взаимоблокировки из стратегии fork при создании экземпляра процесса (см. здесь: https://pythonspeed.com/articles/python ... rocessing/)
Поэтому я переключился на метод spawn (примечание: я также попробовал forkserver и получил ту же проблему), и соответствующий раздел моего код выглядит так :

Код: Выделить всё

import multiprocessing as mp

with mp.get_context("spawn").Pool() as pool:
for batch_result in pool.imap(self.thread_apply, point_batches):
results.extend(batch_result)
где self.thread_apply — это метод, выполняющий вычисления, а point_batches — это пустой массив.
Но затем, пробуя эту новую настройку, после того, как мои процессы сгенерированы в пуле, я получаю ошибки аутентификации:

Код: Выделить всё

azure.core.exceptions.ClientAuthenticationError: DefaultAzureCredential failed to retrieve a token from the included credentials.
Attempted credentials:
EnvironmentCredential: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
Visit https://aka.ms/azsdk/python/identity/environmentcredential/troubleshoot to troubleshoot this issue.
ManagedIdentityCredential: ManagedIdentityCredential authentication unavailable, no response from the IMDS endpoint.
SharedTokenCacheCredential: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
AzureCliCredential: Failed to invoke the Azure CLI
AzurePowerShellCredential: PowerShell is not installed
AzureDeveloperCliCredential: Azure Developer CLI could not be found. Please visit https://aka.ms/azure-dev for installation instructions and then,once installed, authenticate to your Azure account using 'azd auth login'.
To mitigate this issue, please refer to the troubleshooting guidelines here at https://aka.ms/azsdk/python/identity/defaultazurecredential/troubleshoot.
Примечание. При попытке аутентификации без использования конфигурации az login и использовании идентификатора клиента, идентификатора клиента и секретного кода клиента в качестве переменных env, аутентификация прошла успешно, но я все равно хочу иметь возможность запускать эту программу с помощью инструмента аутентификации az login.
Спасибо за помощь :)

Подробнее здесь: https://stackoverflow.com/questions/793 ... ssing-pool
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»