Python: проблема доступа к общему файловому ресурсу Azure с использованием управляемого удостоверенияPython

Программы на Python
Ответить
Anonymous
 Python: проблема доступа к общему файловому ресурсу Azure с использованием управляемого удостоверения

Сообщение Anonymous »

Я пытаюсь запустить этот код Python для доступа к общему файловому ресурсу Azure в приложениях-контейнерах Azure, это всегда вызывает эту ошибку. Поскольку это приложение будет работать в приложениях-контейнерах, мне придется использовать управляемое удостоверение для доступа ко всем компонентам Azure.
Есть ли правильный способ доступа к общему файловому ресурсу в приложениях-контейнерах Azure.
Ошибка:
azure.core.exceptions.ServiceRequestError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)
Код Python:
from azure.identity import DefaultAzureCredential
from azure.storage.fileshare import ShareServiceClient
from azure.core.pipeline.transport import RequestsTransport
from azure.core.pipeline.policies import SansIOHTTPPolicy

import config
import os

class FileIntentPolicy(SansIOHTTPPolicy):
def on_request(self, request):
# Required for Azure Files + AAD
request.http_request.headers["x-ms-file-request-intent"] = "backup"

def test_azure_storage():
account_name = "account_name"
account_key = "account_key"
share_name = "file_share_name"
connection_string = "DefaultEndpointsProtocol=https;AccountName={account_name};AccountKey={account_key};EndpointSuffix=core.windows.net"
print("started")

try:
UserAssignedIdentityClientId = os.environ.get("UserAssignedIdentityClientId")
credential = DefaultAzureCredential(managed_identity_client_id=UserAssignedIdentityClientId)
transport = RequestsTransport(connection_verify=True)
service_client = ShareServiceClient(
account_url=f"https://{account_name}.file.core.windows.net/{share_name}",
credential=credential,
token_intent="backup",
transport=transport,
per_call_policies=[FileIntentPolicy()]
)
share_client = service_client.get_share_client(share_name)
dir_client = share_client.get_directory_client("mainfolder/subfolder")
print("Folders:")

for item in share_client.list_directories_and_files():
if item.is_directory:
print(item.name)
except Exception as e:
print("Test failed for azure storage")
print(e)```


Подробнее здесь: https://stackoverflow.com/questions/798 ... d-identity
Ответить

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

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

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

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

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