Невозможно подключиться к хранилищу BLOB-объектов Azure из Java с помощью управляемого удостоверенияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно подключиться к хранилищу BLOB-объектов Azure из Java с помощью управляемого удостоверения

Сообщение Anonymous »

Я пытаюсь подключиться к учетной записи хранилища BLOB-объектов Azure со своей виртуальной машины с помощью управляемого удостоверения в Java. Ниже приведен код, который я реализовал для установления соединения. Я выполнил все необходимые настройки между виртуальной машиной и учетной записью хранилища BLOB-объектов, включая назначение виртуальной машине роли «Участник данных BLOB-объекта хранилища». Несмотря на это, я по-прежнему не могу подключиться к хранилищу BLOB-объектов и получаю следующие сведения об ошибке.
Класс Java:

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

package com.function;

import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.core.credential.TokenCredential;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;

public class AzureBlobStorageTest {
public static void main(String[] args) {
String endpoint = "https://s*****ev01.blob.core.windows.net";
String containerName = "test";
String blobName = "sample.csv";
String clientId = "619515b1-****-4437-8c09-9eca28338716"; // User-assigned Managed Identity Client ID

try {
// Build credential with client ID
TokenCredential credential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId(clientId)
.build();

BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();

BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);
BlobClient blobClient = containerClient.getBlobClient(blobName);

System.out.println("Connected to Blob: " + blobClient.getBlobUrl());

// Check if blob exists
if (blobClient.exists()) {
System.out.println("Blob exists");
}
} catch (Exception e) {
System.err.println("Error accessing blob storage: " + e.getMessage());
e.printStackTrace();
}
}
}
ОШИБКИ:

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

03:52:25.652 [main] INFO com.azure.core.http.netty.implementation.NettyUtility -- {"az.sdk.message":"The following Netty versions were found on the classpath and have a mismatch with the versions used by azure-core-http-netty. If your application runs without issue this message can be ignored, otherwise please align
the Netty versions used in your application.  For more information, see https://aka.ms/azsdk/java/dependency/troubleshoot.","azure-netty-version":"4.1.126.Final","azure-netty-native-version":"2.0.73.Final","classpath-netty-version-io.netty:netty-common":"4.2.6.Final","classpath-netty-version-io.netty:netty-handler":"4.2.6.Final","classpath-netty-version-io.netty:netty-handler-proxy":"4.2.6.Final","classpath-netty-version-io.netty:netty-buffer":"4.2.6.Final","classpath-netty-version-io.netty:netty-codec":"4.2.6.Final","classpath-netty-version-io.netty:netty-codec-http":"4.2.6.Final","classpath-netty-version-io.netty:netty-codec-http2":"4.2.6.Final","classpath-netty-version-io.netty:netty-transport-native-unix-common":"4.2.6.Final","classpath-netty-version-io.netty:netty-transport-native-epoll":"4.2.6.Final","classpath-netty-version-io.netty:netty-transport-native-kqueue":"4.2.6.Final","classpath-native-netty-version-io.netty:netty-tcnative-boringssl-static":"2.0.73.Final"}
Connected to Blob: https://s*****ev01.blob.core.windows.net/test/sample.csv
03:52:27.415 [main] INFO com.azure.identity.ChainedTokenCredential -- Azure Identity => Attempted credential EnvironmentCredential is unavailable.
03:52:27.419 [main] INFO com.azure.identity.ChainedTokenCredential -- Azure Identity => Attempted credential WorkloadIdentityCredential is unavailable.
03:52:27.486 [main] INFO com.azure.identity.ManagedIdentityCredential -- User-assigned Managed Identity ID: 619515b1-7a16-****-8c09-9eca28338716
03:52:27.554 [main] INFO com.azure.identity.ChainedTokenCredential -- Azure Identity => Attempted credential ManagedIdentityCredential is unavailable.
03:52:27.572 [main] INFO com.azure.identity.ChainedTokenCredential -- Azure Identity => Attempted credential IntelliJCredential is unavailable.
03:52:27.575 [main] INFO com.azure.identity.ChainedTokenCredential -- Azure Identity => Attempted credential VisualStudioCodeCredential is unavailable.
03:52:27.668 [main] INFO com.azure.identity.ChainedTokenCredential -- Azure Identity => Attempted credential AzureCliCredential is unavailable.
03:52:27.696 [main] ERROR com.azure.identity.implementation.PowershellManager -- PowerShell command failure.
Конфигурация управляемой идентификации:
Изображение

Зависимости:

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

        

com.azure
azure-storage-blob
12.31.3



com.azure
azure-identity
1.18.1
compile

К вашему сведению, я успешно протестировал конфигурацию управляемого удостоверения между виртуальной машиной и учетной записью хранения с помощью сценариев PowerShell, где я могу загружать файлы. Однако я сталкиваюсь с проблемами, в частности, при попытке выполнить эту операцию на Java с помощью этого вызова: BlobServiceClient.
Может ли кто-нибудь помочь мне определить, что может быть не так с реализацией Java, которая препятствует подключению к хранилищу BLOB-объектов Azure с использованием управляемого удостоверения?
Спасибо!

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

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

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

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

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

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