public static async Task SetupCosmosDbAccountKeys(FeatureContext featureContext) { IServiceProvider serviceProvider = ContainerBindings.GetServiceProvider(featureContext); IConfigurationRoot configRoot = serviceProvider.GetRequiredService <IConfigurationRoot>(); CosmosDbSettings settings = configRoot.Get <CosmosDbSettings>(); if (settings.CosmosDbKeySecretName == null) { throw new NullReferenceException("CosmosDbKeySecretName must be set in config."); } string keyVaultName = configRoot["KeyVaultName"]; string secret = await SecretHelper.GetSecretFromConfigurationOrKeyVaultAsync( configRoot, "kv:" + settings.CosmosDbKeySecretName, keyVaultName, settings.CosmosDbKeySecretName).ConfigureAwait(false); string partitionKeyPath = configRoot["CosmosDbPartitionKeyPath"]; featureContext.Set(partitionKeyPath, CosmosDbContextKeys.PartitionKeyPath); featureContext.Set(settings); featureContext.Set(secret, CosmosDbContextKeys.AccountKey); }