azure-webjobs-sdk-extensions: Function app settings not read when a function is developed in portal using Cosmos DB Trigger
From @baskar3078 on November 1, 2017 2:49
When we develop a function using Cosmos DB Trigger in azure portal, the database and collection names are not read from function application settings in function.json file.
Investigative information
https://stackoverflow.com/questions/47043182/azure-functions-function-json-cosmos-trigger
Repro steps
- Create a function using CosmosDB Trigger portal
- Add an function application setting with Key - “cosmos-triggers-database-name” and any value
- Update the function.json as below
{
"bindings": [
{
"type": "cosmosDBTrigger",
"name": "inputDocs",
"direction": "in",
"leaseDatabaseName": "leases",
"leaseCollectionName": "MyCosmosCollection-myFunction",
"connectionStringSetting": "CosmosTriggers-SourceAdapter",
"databaseName": "%cosmos-triggers-database-name%",
"collectionName": "MyCosmosCollection",
"createLeaseCollectionIfNotExists": true
}
],
"disabled": false
}
- Save and run the function
Expected behavior
Expected behavior is to read the document from Cosmos DB.
Actual behavior
Function ($myFunction) Error: The listener for function 'Functions.myFunction' was unable to start.
Microsoft.Azure.WebJobs.Extensions.DocumentDB: Either the source collection 'MyCosmosCollection' (in database '%cosmos-triggers-database-name%') or the lease collection 'MyCosmosCollection-myFunction' (in database 'leases') does not exist. Both collections must exist before the listener starts. To automatically create the lease collection, set 'CreateLeaseCollectionIfNotExists' to 'true'. Microsoft.Azure.Documents.Client: Message: {"Errors":["Resource Not Found"]}
ActivityId: b00f7802-fccb-47eb-972d-0bd70ec896c1, Request URI: rntbd://bn6prdddc05-docdb-1.documents.azure.com:14639/apps/6628b461-75d4-4e4a-9897-ada4076dc30c/services/1b0fc27a-de15-45cf-a1b2-ebfce044d1e2/partitions/34cfee55-54aa-4e31-81f4-08cf1bfdf62f/replicas/131523094168492638s/.
Session Id: 092ccb7ce9104407bf56c26a5cc8b119
Timestamp: 2017-10-31T19:13:03.914Z
Known workarounds
We need to explicitly mention the database and collection name in function.json file.
Related information
https://stackoverflow.com/questions/47043182/azure-functions-function-json-cosmos-trigger
Copied from original issue: Azure/azure-webjobs-sdk-script#2086
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 1
- Comments: 17 (14 by maintainers)
I was confused as well. I took a look and have submitted #370 which should fix it.
There were 2 things:
ResolveWholeString
extension in order to evaluate with the %%.