azure-functions - Azure 函数代理 - 必需的请求标头
问题描述
我想使用 Azure 函数代理通过要求存在指定的请求标头来限制对 API 的访问X-MY-HEADER
。我不想在这里实际检查标题的值,只是它存在。
我找不到任何这样的例子,一些试验和错误也没有奏效。在为标头添加附加项之前,代理配置正常工作。
我试过类似的东西:
{
"proxies": {
"Mock API - POST": {
"matchCondition": {
"methods": [ "POST" ],
"route": "/api",
"request.headers.X-MY-HEADER": "{*}"
},
"responseOverrides": {
"response.headers.Location": "https://REAL/API/ADDRESS/ETC"
}
}
}
}
也"request.headers": "X-MY-HEADER"
但似乎都不起作用。
这可能吗,我只是语法错误?
如果标题丢失,我很高兴它只是 404。
解决方案
您可以像这样进行授权:
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace FunctionApp62
{
public static class Function1
{
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
if (req.Headers.Keys.Contains("X-MY-HEADER"))
{
log.LogInformation("has header X-MY-HEADER!");
//put your process logic here.
}
return new OkObjectResult("!!!!!!!!!!!!!!!!!!!!!!");
}
}
}
(在你的函数的逻辑中做autherize,如果请求有标题,那么做一些事情。)
推荐阅读
- c++ - C ++头文件不创建随机数
- excel - 无法从一张工作表中获取 ID 并写入另一个工作簿
- php - 在选择查询中使用页面 php 页面 url id
- php - 从链接(服务器)下载 RAR 文件
- python - 对列表进行计算
- python-3.x - python中简单模式的正则表达式
- python - 在 python 上使用 ffmpeg 将 mkv 转换为 mp3 时出现“不支持的输入采样率设置”错误
- python - python安装在没有互联网但有基本python解释器的机器上
- django - 如何通过使用 django 从表单中提供值来动态过滤数据
- angular - 如何在角度重定向时隐藏外部 URL