vit*_*mal 4 c# decorator azure azure-functions azure-cosmosdb
我正在开发一个 Azure 函数,每次在 CosmosDB 中更新文档时都会触发该函数。我已经成功完成了它,但现在我想避免在 CosmosDBTrigger 装饰器内对值进行硬编码。
我已经尝试使用“%”符号引用存储的应用程序值,正如我在另一篇 SO 帖子中看到的那样。然而,它似乎不起作用。帖子是:是否可以配置 Azure C# 函数 DocumentDB 属性参数?
这是我正在尝试实现的解决方案:
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;
Run Code Online (Sandbox Code Playgroud)
工作解决方案完全相同,但“%”之间的值是硬编码值。
以下是将 Azure Function 发布到 Azure DevOps 时的输出。请注意,ConnectionStringSetting 值是有效的,因为我能够运行 Azure Function,而不会出现硬编码值的任何问题。
错误:
函数 (CacheLogLevels) 错误:Microsoft.Azure.WebJobs.Host:索引方法“CacheLogLevels”错误。Microsoft.Azure.WebJobs.Extensions.CosmosDB:无法为数据库 %LogLevelsCachingDatabaseName% 中的 %LogLevelsCachingCollectionName% 创建集合信息,并在数据库 %LogLevelsCachingLeaseCollectionName% 中创建租约 %LogLevelsCachingDatabaseName%:无法解析属性“CosmosDBTriggerAttribute.ConnectionStringSetting”的应用设置。确保应用程序设置存在并且具有有效值。Microsoft.Azure.WebJobs.Extensions.CosmosDB:无法解析属性“CosmosDBTriggerAttribute.ConnectionStringSetting”的应用程序设置。确保应用程序设置存在并且具有有效值。会话 ID:34dd30479d6a440caf063493bd1abc3d
时间戳: 2019-07-17T22:35:01.376Z
我想使用来自 Azure Function App 配置的值:
Azure 函数应用程序配置
非常感谢您阅读我的问题,祝您有美好的一天!
维托里奥
ConnectionStringSettings和LeaseConnectionStringSetting参数自动将值解析为应用程序设置,不带百分号(请参阅触发器配置):
public static void Run([CosmosDBTrigger(
databaseName: "%LogLevelsCachingDatabaseName%",
collectionName: "%LogLevelsCachingCollectionName%",
ConnectionStringSetting = "LogLevelsCachingDatabaseSetting", // <-- remove %-signs
LeaseCollectionName = "%LogLevelsCachingLeaseCollectionName%",
StartFromBeginning = true
)]IReadOnlyList<Document> input, ILogger log)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3510 次 |
最近记录: |