我有一个托管在AKS上的模型,它需要读取ADLS Gen 2中的一个文件,以便在Python中进行功能工程。我为AKS提供了一个托管身份,并授予该身份存储blob数据贡献者访问ADLS Gen 2的权限。
鉴于此,我如何在Python代码中将我的AKS web服务连接到ADLS Gen 2?我在这里看到了在给定客户端机密和客户端ID的情况下执行此操作的文档,但我可以使用托管身份执行此操作而不显式使用客户端机密和客户机ID吗?
要使用托管身份访问ADLS Gen 2,您只需要使用ManagedIdentityCredential
而不是您提供的代码示例的ClientSecretCredential
。
credential = ManagedIdentityCredential()
service_client = DataLakeServiceClient(account_url="{}://{}.dfs.core.windows.net".format("https", storage_account_name), credential=credential)
注意:上面的代码只适用于系统分配的托管标识,如果您使用的是用户分配的托管身份,则需要使用client_id
参数。
credential = ManagedIdentityCredential(client_id = "<client-id of your user-assigned managed identity>")