首页 > 解决方案 > Cosmos DB 触发器无法使用 azure 函数 C# 读取 appsettings

问题描述

我们已经使用 azure functionv3 实现了 COSMOS DB 触发器。它并不总是阅读 appsettings。有时它会起作用,有时它会返回 null。

    {


        [FunctionName("FilePostProcess")]
        public async Task Run([CosmosDBTrigger(
            databaseName: "%cosmos-db-name%",
            collectionName: "%cosmos-cases-container-name%",
            ConnectionStringSetting = "CosmosDBConnection",
            CreateLeaseCollectionIfNotExists=true,
            StartFromBeginning=true,
            LeaseCollectionName = "leases",
            LeaseCollectionPrefix = "filepostprocess")]IReadOnlyList<Microsoft.Azure.Documents.Document> input,
            [CosmosDB(
                databaseName: "%cosmos-db-name%",
                collectionName: "%cosmos-cases-container-name%",
                ConnectionStringSetting = "CosmosDBConnection")] DocumentClient client,
                 ILogger log, ExecutionContext context)
        {

var enablePostProcessing = Environment.GetEnvironmentVariable("AppSettingName");

}```

标签: azure-functionsazure-cosmosdb

解决方案


如果已将函数部署到 Azure 门户。您应该在应用程序设置下添加设置

在此处输入图像描述

如果您在本地测试该功能,则应将设置添加到local.settings.json文件中。

在此处输入图像描述

你应该能够像这样获取环境变量中的值

Environment.GetEnvironmentVariable("AppSettingName");

推荐阅读