Open sharmaplkt opened 1 week ago
Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @EmmaZhu @Jinming-Hu @vinjiang.
@sharmaplkt you should always instantiate your datalake clients with .dfs.
endpoint. The clients will use .dfs
endpoint for some operations and .blob.
endpoint for the others. There's no way to modify or get around this. If you have a firewall, you should add both .dfs
and .blob.
endpoints into the rule set.
Hi @sharmaplkt. Thank you for opening this issue and giving us the opportunity to assist. We believe that this has been addressed. If you feel that further discussion is needed, please add a comment with the text "/unresolve" to remove the "issue-addressed" label and continue the conversation.
@Jinming-Hu
If you have a firewall, you should add both .dfs and .blob. endpoints into the rule set.
Regarding this. Can you point me to the Azure documentation for adding both endpoints.
@sharmaplkt There's no documentation for this. This is how storage SDK works, not just C++, but all languages (.Net, Java, etc.)
@Jinming-Hu For Java, We are able to connect to storage account without adding endpoint for .blob
in firewall rules. But we need to add this specifically only for C++.
@sharmaplkt That's kind of surprising to me. I'm checking Java's source code. Java SDK also transforms datalake operations into blobs. For example, GetPathProperties
is transformed to GetBlobProperties
https://github.com/Azure/azure-sdk-for-java/blob/2d5157baab234be4ebf990b4f8a1ec1ec1134992/sdk/storage/azure-storage-file-datalake/src/main/java/com/azure/storage/file/datalake/DataLakePathClient.java#L1522C5-L1529C6
In our scenario, we are attempting to instantiate a DataLakeFileClient using a storage URL formatted as https://adlsgen2account.dfs.core.windows.net/. However, the DataLakeFileClient consistently converts this URL to a blob URL (https://adlsgen2account.blob.core.windows.net/) before creating the object.
Our storage account is situated within a virtual network (VNet), and we have established a managed private endpoint from our workspace to the storage account. The default schema configured for this endpoint is
dfs
.https://github.com/Azure/azure-sdk-for-cpp/blob/bbfc93fcaef31f4f67acb56ee749a94bf2a7ead3/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp#L82C33-L82C68
DataLakeFileClient
is always initialized using the blob endpoint URL (https://adlsgen2account.blob.core.windows.net/*). Is there a workaround for this.