无法使用 httpclient post 请求手动触发我的 Azure 计时器触发器
Unable to manual trigger my Azure Timer Trigger using httpclient post request
https://docs.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http
我正在尝试手动触发我在 2.0 中创建并在 .net core 2.0 中开发的 Azure 计时器功能应用程序。
当我尝试点击 url 时出现 403 错误。
我传递的 apikey 是从 :
作为您提供的文章,您需要在Manage
和Host key
下使用_master key
我在针对服务总线触发的 Azure Functions 的集成测试中使用以下 class。
class AzureFunctionCaller
{
private readonly HttpClient _httpClient;
private readonly string _functionUri;
public AzureFunctionCaller(string functionName)
{
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Add("x-functions-key","<Key>");
_functionUri = $"<FUNCTION_ENDPOINT>/admin/functions/{functionName}";
}
public async Task CallViaAdminEndpoint(string content)
{
var httpContent = new StringContent(content, Encoding.UTF8, "application/json");
var response = await _httpClient.PostAsync(_functionUri, httpContent);
var responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Response content: {responseContent}");
}
}
然后您必须以将内容放入 "input" 对象的格式发送数据。
var azureFunctionCaller = new AzureFunctionCaller("<FunctionName>");
var obj = new
{
... // properties you want to send
};
var jsonContent = JsonConvert.SerializeObject(new
{
input = JsonConvert.SerializeObject(obj)
});
await azureFunctionCaller.CallViaAdminEndpoint(jsonContent);`
为了解释输入 属性,这里是相同调用在 postman 中的样子:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http
我正在尝试手动触发我在 2.0 中创建并在 .net core 2.0 中开发的 Azure 计时器功能应用程序。
当我尝试点击 url 时出现 403 错误。
我传递的 apikey 是从 :
作为您提供的文章,您需要在Manage
和Host key
下使用_master key
我在针对服务总线触发的 Azure Functions 的集成测试中使用以下 class。
class AzureFunctionCaller
{
private readonly HttpClient _httpClient;
private readonly string _functionUri;
public AzureFunctionCaller(string functionName)
{
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Add("x-functions-key","<Key>");
_functionUri = $"<FUNCTION_ENDPOINT>/admin/functions/{functionName}";
}
public async Task CallViaAdminEndpoint(string content)
{
var httpContent = new StringContent(content, Encoding.UTF8, "application/json");
var response = await _httpClient.PostAsync(_functionUri, httpContent);
var responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Response content: {responseContent}");
}
}
然后您必须以将内容放入 "input" 对象的格式发送数据。
var azureFunctionCaller = new AzureFunctionCaller("<FunctionName>");
var obj = new
{
... // properties you want to send
};
var jsonContent = JsonConvert.SerializeObject(new
{
input = JsonConvert.SerializeObject(obj)
});
await azureFunctionCaller.CallViaAdminEndpoint(jsonContent);`
为了解释输入 属性,这里是相同调用在 postman 中的样子: