gpt4 book ai didi

c# - 如何使用 Function App 中存储的应用程序值中的值设置 CosmosDBTrigger 参数?

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:52 26 4
gpt4 key购买 nike

我正在开发一个 Azure 函数,每次在 CosmosDB 中更新文档时都会触发该函数。我已经成功完成了它,但现在我想避免在 CosmosDBTrigger 装饰器内对值进行硬编码。

我已经尝试使用“%”符号引用存储的应用程序值,正如我在另一篇 SO 帖子中看到的那样。然而,它似乎不起作用。帖子是:Is it possible to configure Azure C# function DocumentDB attribute arguments?

这是我正在尝试实现的解决方案:

 public static void Run([CosmosDBTrigger(
databaseName: "%LogLevelsCachingDatabaseName%",
collectionName: "%LogLevelsCachingCollectionName%",
ConnectionStringSetting = "%LogLevelsCachingDatabaseSetting%",
LeaseCollectionName = "%LogLevelsCachingLeaseCollectionName%",
StartFromBeginning = true
)]IReadOnlyList<Document> input, ILogger log)
{
if (input == null || input.Count <= 0) return;

工作解决方案完全相同,但“%”之间的值是硬编码值。

以下是将 Azure Function 发布到 Azure DevOps 时的输出。请注意,ConnectionStringSetting 值是有效的,因为我能够运行 Azure Function,而不会出现任何硬编码值问题。

错误:

Function (CacheLogLevels) Error: Microsoft.Azure.WebJobs.Host: Error indexing method 'CacheLogLevels'. Microsoft.Azure.WebJobs.Extensions.CosmosDB: Cannot create Collection Information for %LogLevelsCachingCollectionName% in database %LogLevelsCachingDatabaseName% with lease %LogLevelsCachingLeaseCollectionName% in database %LogLevelsCachingDatabaseName% : Unable to resolve app setting for property 'CosmosDBTriggerAttribute.ConnectionStringSetting'. Make sure the app setting exists and has a valid value. Microsoft.Azure.WebJobs.Extensions.CosmosDB: Unable to resolve app setting for property 'CosmosDBTriggerAttribute.ConnectionStringSetting'. Make sure the app setting exists and has a valid value. Session Id: 34dd30479d6a440caf063493bd1abc3d

时间戳:2019-07-17T22:35:01.376Z

我想使用来自 Azure Function App 配置的值:

Azure Function 应用配置

enter image description here

非常感谢您阅读我的问题,祝您有美好的一天!

维托里奥

最佳答案

ConnectionStringSettingsLeaseConnectionStringSetting 参数自动将值解析为应用设置,不带百分号(请参阅 trigger configuration ):

public static void Run([CosmosDBTrigger(
databaseName: "%LogLevelsCachingDatabaseName%",
collectionName: "%LogLevelsCachingCollectionName%",
ConnectionStringSetting = "LogLevelsCachingDatabaseSetting", // <-- remove %-signs
LeaseCollectionName = "%LogLevelsCachingLeaseCollectionName%",
StartFromBeginning = true
)]IReadOnlyList<Document> input, ILogger log)

关于c# - 如何使用 Function App 中存储的应用程序值中的值设置 CosmosDBTrigger 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57084829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com