相关疑难解决方法(0)

如何在Azure Functions C#上以简单的方式获取GET查询参数?

我试过了

    /// <summary>
    /// Request the Facebook Token
    /// </summary>
    [FunctionName("SolicitaFacebookToken")]
    [Route("SolicitaToken/?fbAppID={fbAppID}&fbCode={fbCode}&fbAppSecret={fbAppSecret}")]
    public static async Task<HttpResponseMessage> SolicitaFacebookToken(
        [HttpTrigger(AuthorizationLevel.Function, methods: new string[] { "get" } )]
        HttpRequestMessage req,
        TraceWriter log,
        string fbAppID,
        string fbCode,
        string fbAppSecret
    )
    { }
Run Code Online (Sandbox Code Playgroud)

当我访问URL时

http://localhost:7071/api/SolicitaFacebookToken/?fbAppID=ABC&fbCode=DEF&fbAppSecret=GHI
Run Code Online (Sandbox Code Playgroud)

但这会带来以下错误:

无法从Azure WebJobs SDK调用“ SolicitaFacebookToken”。是否缺少Azure WebJobs SDK属性?System.InvalidOperationException:无法从Azure WebJobs SDK调用'SolicitaFacebookToken'。是否缺少Azure WebJobs SDK属性?在Microsoft.Azure.WebJobs.JobHost.Validate(IFunctionDefinition函数,对象键)在异步Microsoft.Azure.WebJobs.JobHost.CallAsync(??)在异步Microsoft.Azure.WebJobs.Script.ScriptHost.CallAsync(String method,Dictionary异步Microsoft.Azure.WebJobs.Script.Host.FunctionRequestInvoker处的`2个参数,异步Microsoft.Azure.WebJobs.Script.WebHost.WebScriptHostManager.HandleRequestAsync(FunctionDescriptor function,HttpRequestMessage request,CancellationToken cancellingToken)处的异步参数。

如果我更改为

HttpRequestMessage req,
        string fbAppID,
        string fbCode,
        string fbAppSecret,
        TraceWriter log
Run Code Online (Sandbox Code Playgroud)

[14/04/2018 15:24:49]以下1个功能有误:

[14/04/2018 15:24:49] SolicitaFacebookToken:Microsoft.Azure.WebJobs.Host:错误索引方法'Function1.SolicitaFacebookToken'。Microsoft.Azure.WebJobs.Host:无法将参数“ fbAppID”绑定为字符串类型。确保绑定支持参数类型。如果您正在使用绑定扩展(例如ServiceBus,Timer等),请确保已在启动代码(例如config.UseServiceBus(),config.UseTimers()等)中调用了扩展的注册方法。 )。

在Azure Functions模板代码中,有

string name = req.GetQueryNameValuePairs()
                 .FirstOrDefault(q …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-functions

8
推荐指数
4
解决办法
1万
查看次数

我的HTTP触发Azure功能如何将请求的参数直接传递给Run方法?

我有一个HTTP调用触发的以下Azure功能:

public static class MyAzureFunction
{
    [FunctionName("api/v1/resource/")]
    public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get")]HttpRequestMessage request, ILogger logger)
    {
        // Extract query string params from the request...
    } 
}
Run Code Online (Sandbox Code Playgroud)

我希望将参数自动传递给Run方法,就像使用ASP.NET Core Web API一样,而不必从请求本身中提取它们并解析它们.

这是我想要得到的一个例子:

[FunctionName("api/v1/resource/{resourceId}")]
public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get")]HttpRequestMessage request, ILogger logger, int resourceId)
{
     // ...
} 
Run Code Online (Sandbox Code Playgroud)

或者,在做POST时:

[FunctionName("api/v1/resource/")]
public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "post")]HttpRequestMessage request, ILogger logger, [FromBody] SomeEntityModel entityModel)
{
         // ...
}
Run Code Online (Sandbox Code Playgroud)

c# azure-functions

3
推荐指数
1
解决办法
1525
查看次数

标签 统计

azure-functions ×2

c# ×2

azure ×1