gpt4 book ai didi

azure - GetAccessPolicyAsync/SetAccessPolicyAsync 不适用于托管标识

转载 作者:行者123 更新时间:2023-12-02 08:19:25 24 4
gpt4 key购买 nike

我正在更新一些旧代码以使用托管身份而不是访问 key 。
代码:

  1. 创建 DataLakeServiceClient
  2. 使用它来获取文件 DataLakeFileSystemClient (var dlfsc = dlsc.GetFileSystemClient(containerName);)
  3. 调用 GetAccessPolicyAsync 和 SetAccessPolicyAsync (var acl = wait client.GetAccessPolicyAsync().ConfigureAwait(false);)

当我使用 StorageSharedKeyCredential 构造 DataLakeServiceClient 时,一切正常。但是,当我使用 a 构造 DataLakeServiceClientManagedIdentityCredential vai(DefaultAzureCredential),抛出以下异常:

The specified resource does not exist.
RequestId:f2543e09-a01e-000d-321b-e47741000000
Time:2021-11-28T05:51:15.6906885Z
Status: 404 (The specified resource does not exist.)
ErrorCode: ResourceNotFound

Content:
<?xml version="1.0" encoding="utf-8"?><Error><Code>ResourceNotFound</Code><Message>The specified resource does not exist.
RequestId:f2543e09-a01e-000d-321b-e57741000000
Time:2021-11-28T05:51:15.6906885Z</Message></Error>

我认为这是来自 Azure.Identity 尝试使用 ManagedIdentityCredential 获取 token 时?

需要注意的重要一点是 DataLakeFileSystemClient ExistsAsync() 方法也会被调用,并且在任何情况下都可以正常工作。

所以我的问题是,为什么当使用 StorageSharedKeyCredential 创建 DataLakeFileSystemClient 时 AccessPolicy 方法可以正常工作,但使用 ManagedIdentityCredential 创建它时却不能正常工作?

最佳答案

So my question is, why does the AccessPolicy methods work fine whenthe DataLakeFileSystemClient has been created usingStorageSharedKeyCredential, but not when it is created usingManagedIdentityCredential?

这是因为访问策略操作仅支持共享访问 key 凭据,而不支持使用托管标识时使用的 Azure AD 凭据。

从此link :

enter image description here

关于azure - GetAccessPolicyAsync/SetAccessPolicyAsync 不适用于托管标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70141490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com