https://docs.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http
我正在尝试手动触发我在2.0中创建并在.net Core2.0中开发的Azure定时器函数应用程序。
当我尝试访问url时,我得到了403错误。
apikey I pass选自:
发布于 2019-03-20 10:20:35
正如您提供的文章所述,您需要在Manage
和Host key
下使用_master key
发布于 2019-03-22 22:33:49
我在针对服务总线触发的Azure函数的集成测试中使用以下类。
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);`
为了解释input属性,下面是postman中相同调用的样子:
https://stackoverflow.com/questions/55252379
复制相似问题