Я добавил функцию запуска служебной шины для создания хранилища ключей через Microsoft.Azure. Библиотека Management.Fluent.
Функция работает нормально локально и создает новое хранилище ключей в моей подписке MSDN, однако, когда она развертывается в Azure и пытается создать хранилище ключей в тестовой подписке нашей компании с использованием идентификатора управляемой службы приложения-функции, она терпит неудачу с ArgumentNullException
из Guid.Parse
.
Трассировка стека
Inner exception System.ArgumentNullException handled at CollectorFunctions.Proxies.KeyVaultProxy+d__9.MoveNext:
at System.Guid.Parse (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at Microsoft.Azure.Management.KeyVault.Fluent.VaultsImpl.WrapModel (Microsoft.Azure.Management.KeyVault.Fluent, Version=1.0.0.68, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
at Microsoft.Azure.Management.KeyVault.Fluent.VaultsImpl.Define (Microsoft.Azure.Management.KeyVault.Fluent, Version=1.0.0.68, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
at Microsoft.Azure.Management.KeyVault.Fluent.VaultsImpl.Microsoft.Azure.Management.ResourceManager.Fluent.Core.CollectionActions.ISupportsCreating<Microsoft.Azure.Management.KeyVault.Fluent.Vault.Definition.IBlank>.Define (Microsoft.Azure.Management.KeyVault.Fluent, Version=1.0.0.68, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
at CollectorFunctions.Proxies.KeyVaultProxy+d__9.MoveNext (CollectorFunctions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullCollectorFunctions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\src\Server\CollectorFunctions\Proxies\IKeyVaultProxy.csCollectorFunctions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 86)
Ошибка возникает при выполнении следующего оператора, взятого из примера ManageKeyVault проект, связанный с этим воспроизведением. Все предоставленные параметры имеют допустимые значения, и группа ресурсов была найдена через IAzure.ResourceGroups.GetByNameAsync (resourceGroupName).
await _azure.Vaults
.Define(newKeyVaultName)
.WithRegion(resourceGroup.Region)
.WithExistingResourceGroup(resourceGroupName)
.WithEmptyAccessPolicy()
.CreateAsync();