我正在关注这个示例,但需要从查询参数中记录 id
输入的是
const cosmosInput = input.cosmosDB({
databaseName: 'ToDoItems',
collectionName: 'Items',
id: '{id}',
partitionKey: '{partitionKeyValue}',
connectionStringSetting: 'CosmosDBConnection', });
用作时
const toDoItem = context.extraInputs.get(cosmosInput);
cosmosInput 对象是 json
{
"databaseName": "demo",
"containerName": "todo",
"id": "{id}",
"partitionKey": "{partitionKeyValue}",
"connection": "CosmosDBConnection",
"type": "cosmosDB",
"name": "cosmosDBInputdc9624d5bb"
}
要提取 id,cosmosInput.id 类似于 {id},而不是 url 中的实际值。所以这不是选择。
如何获取通过 URL 查询参数提供的真实值?
http://localhost:7071/api/storageOutBinding?id=172&partitionKeyValue=6
在查询中传递
id
和partitionKey
的值。您需要使用您正在关注的文档中提到的
{Query.id}
和{Query.partitionkey}
。
这对我有用。
httpTrigger1.js
:
const { app, input } = require('@azure/functions');
const cosmosInput = input.cosmosDB({
databaseName: 'ToDoList',
containerName: 'Items',
id: '{Query.id}',
partitionKey: '{Query.partitionKey}',
connection: 'CosmosDBConnection'
});
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraInputs: [cosmosInput],
handler: async (request, context) => {
context.log(`Http function processed request for url "${request.url}"`);
const toDoItem = context.extraInputs.get(cosmosInput);
if (!toDoItem) {
return {
status: 404,
body: 'ToDoList item not found',
};
} else {
return {
body: `Found ToDoList item, Message=${toDoItem.message}`,
};
}
},
});
DB data
:{
"id": "1",
"partitionKey": "10",
"message": "Hello, This data is from query string"
}
OUTPUT
: