azure - 部署后带有 CosmosDb 输入的 HTTPTrigger Azure 函数不起作用
问题描述
我在 HttpTrigger 函数下创建了将 CosmosDb 项作为输入的函数。此代码在本地运行时运行良好。在本地成功运行后,我正在使用 Visual Studio Code 创建函数并部署到 Azure。但它在 Azure 上不起作用,它没有给出错误,或者它似乎没有得到任何响应。
public static class HttpTriggerWithCosmosDb
{
[FunctionName("HttpTriggerWithCosmosDb")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "HttpTriggerWithCosmosDb/{id}")] HttpRequest req,
[CosmosDB(
databaseName : "func-io-learn-db",
collectionName : "Bookmarks",
ConnectionStringSetting = "CosmosDBConnection",
Id = "{id}",
PartitionKey = "{id}"
)] BookMarkItem item,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string name = item.Url;
Console.Write( item.Id);
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
name = name ?? data?.name;
string responseMessage = string.IsNullOrEmpty(name)
? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
: $"Hello, {name}. This HTTP triggered function executed successfully.";
return new OkObjectResult(responseMessage);
}
}
发布时,在输出中我看到以下消息:
HttpTriggerCSharp1: https
://nps-func.azurewebsites.net/api/HttpTriggerCSharp1 TestMessage:https : //nps-func.azurewebsites.net/api/TestMessage 下午 5:33:02 nps-func:警告:一些 http 触发器 url无法在输出窗口中显示,因为它们需要身份验证令牌。
更新:可以在Git上找到完整的代码
解决方案
我得到了问题,这里发生了什么。在发布函数之前,我必须使用Azure Function:Add New Settings...命令 手动将 CosmosDBConnection 添加到 Azure 。
我是新手,我不知道这是如何添加 app_settings 的。
推荐阅读
- rpa - 如何从泛卡中提取信息并将其保存在ui路径中的excel列中
- sql - SQL count 出现问题
- r - 基于R中其他列值的重复行
- angular - 多个依赖应用程序和样式的 Angular 存储库
- javascript - 反应输入复选框不间接更新状态
- vba - 宏在代码内终止而没有错误
- html - 使用 div 的固定高度创建具有 flex 方向列的自动新行
- javascript - Highcharts:在初始渲染后禁用/启用 enableMouseTracking
- python - 如何在 Python 中的方法中预设对象变量
- javascript - Spring Boot 混合会话数据