Utilizzo del servizio di accesso ai dati (DAS) per accedere agli archivi compatibili con ADLS e ABS
Le applicazioni esterne e i motori di interrogazione possono accedere agli archivi compatibili Azure Data Lake Storage (ADLS) e Azure Blob Storage (ABS), gestiti da watsonx.data attraverso il proxy DAS.
La funzione proxy del Data Access Service (DAS) è stata completamente rimossa in 2.1.2 e non è più disponibile in watsonx.data. Non è possibile utilizzare la funzione proxy del Data Access Service (DAS) per accedere all'archiviazione degli oggetti ( S3, ADLS e ABS).
Il supporto del proxy DAS per ADLS e ABS funziona solo con AccountKey per passare la credenziale watsonx.data. L'uso di SASToken per passare la credenziale watsonx.data non è supportato.
Per accedere agli archivi compatibili ADLS e ABS:
-
Ottenere l'endpoint DAS dalla finestra informativa watsonx.data. Fare clic sull'icona
inella pagina iniziale per aprire la finestra informativa. -
Sostituire l'endpoint ADLS o ABS con l'endpoint DAS nel codice Java. Sostituire il nome dell'accesso con il valore codificato come segue:
base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}Per ottenere la stringa codificata Base64, utilizzare uno dei seguenti comandi:
printf "username:<apikey>" | base64echo -n "username:<apikey>" | base64 -
Sostituire il nome del contenitore nel codice Java come segue:
cas/v1/proxy/<storage name in watsonx.data>
Java per utilizzare DAS
//For IBM Cloud <ADLS or ABS account name>|base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}
//For AWS <ADLS or ABS account name>|base64{<crn>|Basic base64{ibmlhapikey_ServiceId-<service_id>:<APIKEY>}}
String accountName = "<ADLS or ABS account name>|base64{<instanceid>|ZenApikey base64{username:<apikey>}}";
String accountKey = "any string";
String endPoint = "<DAS endpoint>";
String containerName ="cas/v1/proxy/<storagename in watsonx.data>";
String endpoint = String.format(endPoint,accountName);
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint(endpoint)
.credential(new StorageSharedKeyCredential(accountName, accountKey))
.buildClient();
BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);