#azure-webjobs #azure-webjobssdk
#azure-webjobs #azure-webjobssdk
Вопрос:
По умолчанию для WebJobs требуется указать учетную запись хранилища Azure, используя строку подключения AzureWebJobsStorage.
Но у меня уже есть доступ к моему хранилищу с управляемой идентификацией:
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
string accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://storage.azure.com/");
StorageCredentials storageCredentials = new StorageCredentials(new TokenCredential(accessToken));
CloudStorageAccount cloudStorageAccount = new CloudStorageAccount(storageCredentials, "mystorageaccount", "core.windows.net", true);
Могу ли я настроить WebJobs на использование этой CloudStorageAccount вместо строки подключения AzureWebJobsStorage?
Ответ №1:
Могу ли я настроить WebJobs на использование этой CloudStorageAccount вместо строки подключения AzureWebJobsStorage?
Да, вы могли бы использовать cloudStorageAccount
для получения учетной записи большого двоичного объекта и выполнения некоторых операций с большими двоичными объектами. Тем не менее, вам все равно необходимо предоставить AzureWebJobsDashboard
и AzureWebJobsStorage
при использовании Webjob. Поскольку это не только строка подключения, они также являются путем к журналу.
В моем тесте я задаю AzureWebJobsStorage
значение с помощью storage1
соединения, а в коде получаю storage2
учетную запись, и это работает.
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
string accessToken = azureServiceTokenProvider.GetAccessTokenAsync("https://storage.azure.com/").Resu<
StorageCredentials storageCredentials = new StorageCredentials(new TokenCredential(accessToken));
CloudStorageAccount cloudStorageAccount = new CloudStorageAccount(storageCredentials, "storage2", "core.windows.net", true);
CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference("mycontainer");
CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference("hello.txt");
cloudBlockBlob.UploadTextAsync("aaaaaaaa").Wait();
Для получения более подробной информации о назначении роли и получении токена доступа вы можете обратиться к этой статье.
Комментарии:
1. Итак, если я правильно понимаю, я ничего не получу, назначив управляемую идентификацию функции Azure для доступа к учетной записи хранилища с помощью
IBinder
. Я все равно не избавлюсь от строки подключения?