早安,
我正在Visual Studio中使用.net framework / V1开发azure函数,我想从Azure函数上的 TestData 集合中检索 clientDetails 数据,我的函数是HttpTrigger。
我尝试了以下链接中的示例:Azure Cosmos DB bindings for Azure Functions 1.x
我创建了两个属性类:
public class DocumentClient
{
[JsonProperty("clientDetails")]
public List<ClientDetails> clientDetails { get; set; }
}
public class ClientDetails
{
public string domain { get; set; }
public string channel { get; set; }
public string retailer { get; set; }
public string store { get; set; }
public string auth { get; set; }
}
这是构造函数:
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function), Disable()]HttpRequestMessage req, [DocumentDB(
databaseName: "Client",
collectionName: "TestData",
ConnectionStringSetting = "CosmosDBConnection"
)] DocumentClient client, TraceWriter log)
但是我在运行函数时遇到错误需要输入ID ,但是每次尝试添加
Id ="{Hardcoded - the TestData's Id}"
我遇到错误“触发该功能时,必须为此操作提供PartitionKey值”
我将此添加到了local.settings.json中:
"CosmosDBConnection": "AccountEndpoint=https://test.com:443/;AccountKey=testkey==;"
致谢
答案 0 :(得分:1)
我遇到错误“必须为此提供PartitionKey值 功能被触发
根据此错误消息,我认为您需要在function.json
文件中设置partitionKey。请参考此supported properties list。
PartitionKey指定查找的分区键值。可以 包括绑定参数。
这里是一个示例:
{
"name": "inputDocument",
"type": "documentDB",
"databaseName": "MyDatabase",
"collectionName": "MyCollection",
"id" : "{queueTrigger}",
"partitionKey": "{partition key value}",
"connection": "MyAccount_COSMOSDB",
"direction": "in"
}