[使用AWS时,如果您使用aws configure
登录,则可以使用AWS开发工具包,而无需从本地计算机公开任何编程语言的凭证。如果稍后AWS内部运行任何东西(Lambda,EC2等),则完全相同的代码会使用资源分配的IAM角色,而无需进行任何配置。
我尝试使它与Azure一起使用,我认为Azure.Identity.DefaultAzureCredential
可以做到这一点。但是我什至不能在本地运行我的代码:
var blobServiceClient = new BlobServiceClient(storageUri, new DefaultAzureCredential());
var containerClient = await blobServiceClient.CreateBlobContainerAsync("test-container");
我如何获得使用本地计算机上的CLI凭据进行身份验证的BlobServiceClient,以及如果在AppService中运行则获得托管身份。
在您所使用的场景中,DefaultAzureCredential
与DefaultAzureCredential
一起是最佳选择,但它不使用CLI凭据进行身份验证。
要使其工作,只需将服务主体的BlobServiceClient
,Environment variables
,Environment variables
设置为AZURE_CLIENT_ID
。在Azure中,它使用MSI进行身份验证。
[如果要使用CLI凭据进行身份验证,则有AZURE_TENANT_ID
,它也可以访问Azure存储,但是不能与AZURE_CLIENT_SECRET
一起使用,您需要获取带有资源AzureServiceTokenProvider
的访问令牌,
AzureServiceTokenProvider
然后使用访问令牌来调用BlobServiceClient
,我认为第一个选项更方便,使用哪个选项取决于您。