Azure函数从Cosmos Db Mongo Collection返回空数据集

问题描述 投票:0回答:1

我有一个Azure函数,它正在查询一个当然持有数据的cosmos db mongo集合。

Data is in the collection

但是,当通过我的azure函数查询时,该函数返回一个空数组。

我的功能看起来像:

    [FunctionName("GetAll")]
    public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = null)]HttpRequest req, 
        TraceWriter log, [Inject(typeof(IWarehouseStateRepository))]IWarehouseStateRepository repoW)
    {
        log.Info("GetAll Function is processing a request");
        var warehouses = repoW.GetAllWarehouses();
        return warehouses != null ? 
            (ActionResult)new OkObjectResult(warehouses) :
            new BadRequestObjectResult("Something went wrong with this request");
    }

我正在为我的仓库存储库注入一个自定义类型,这取决于db配置上下文,如下所示:

public class StateContext : IStateContext
{
    private readonly IMongoDatabase _database = null;
    private readonly string _connectionString;
    private readonly string _dbName;
    private readonly string _collectionName;

    public StateContext()
    {

        _connectionString = Environment.GetEnvironmentVariable("AggregateDbConnectionDev");
        _dbName = Environment.GetEnvironmentVariable("AggregateDbNameDev");
        _collectionName = Environment.GetEnvironmentVariable("AggregateDbCollectionDev");

        MongoClientSettings settings = MongoClientSettings.FromUrl(new MongoUrl(_connectionString));
        settings.SslSettings = new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };

        var client = new MongoClient(settings);
        if (client != null)
            _database = client.GetDatabase(_dbName);
    }

    public IMongoCollection<WarehouseState> WarehouseState
    {
        get
        {
            return _database.GetCollection<WarehouseState>(_collectionName);
        }
    }
}

该函数不会抛出任何错误或异常。

回购查询:

    public IEnumerable<WarehouseState> GetAllWarehouses()
    {
        var warehouses = _context.WarehouseState.Find(_ => true).ToList();
        return warehouses;
    }

有没有人有任何想法在这里可能会出错?我是否需要使用azure函数以不同的方式设置cosmos Db连接?

在将逻辑移动到azure函数之前,此设置先前已有效。

.net mongodb azure azure-functions azure-cosmosdb
1个回答
0
投票

我使用上面相同的代码插入到集合中,并将其插入到具有相同集合名称的数据库中的新集合中..仍然不确定原因,但我想它现在正在工作。

© www.soinside.com 2019 - 2024. All rights reserved.