使用 HTTP 请求 userId 值的 Azure Functions CosmosDB 输入绑定

问题描述 投票:0回答:1
我有一个用 JavaScript v4 编程模型编写的基本 azure 函数。我希望它使用 http 请求中提供的用户 ID 来访问数据库并获取表示用户详细信息的文档。下面返回 500 服务器错误,因为请求在处理程序外部未定义。

const { app, input } = require('@azure/functions'); const cosmosInput = input.cosmosDB({ databaseName: 'rcmapp', collectionName: 'users', id: '{request.user.id}', partitionKey: '{request.user.id}', connectionStringSetting: 'COSMOS_CONNECTION_STRING' }); app.http('userDetails', { methods: ['GET'], authLevel: 'anonymous', extraInputs: [cosmosInput], handler: (request, context) => { context.log(`User details function triggered`); const userDetails = JSON.parse(context.extraInputs.get(cosmosInput)); return { body: userDetails }; } });
有没有办法可以使用绑定表达式访问此值以传递到输入绑定?

javascript azure azure-functions azure-cosmosdb
1个回答
0
投票
我使用以下代码来

通过将 user_Id作为参数传递给Http请求来获取用户详细信息。

const { app, input } = require('@azure/functions'); const cosmosInput = input.cosmosDB({ databaseName: 'userdetails', containerName: 'usercontainer', id: '{Query.id}', partitionKey: '{Query.user_id}', connection: 'cosmosconnection' }); app.http('userDetails', { methods: ['GET','POST'], authLevel: 'anonymous', extraInputs: [cosmosInput], handler: (request, context) => { context.log(`User details function triggered`); const userDetails = context.extraInputs.get(cosmosInput); return { body: `Found user details with id ${userDetails.user_name}`, }; } });

    创建了
  • Cosmos DB 容器 并添加 /user_id
     作为 
    分区键
  • 上传了具有
  • user_details 的 Json 文件。

enter image description here

在本地运行该函数:

enter image description here

    传递参数
  • user_idid

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.