【问题标题】:Add Optional Parameter to Azure Function向 Azure 函数添加可选参数
【发布时间】:2020-05-23 16:09:34
【问题描述】:

假设我有一个如下所示的 Azure Function 方法定义:

    [FunctionName("TestAzureFunction")]
    public static async Task Run([BlobTrigger("{name}")]Stream fileBlob, string name, MyObject object = null)

我想向我的 azure 函数添加一个可选参数,以便其他代码也可以调用它。不幸的是,我收到一条错误消息,指出不支持此绑定。有谁知道如何解决这个问题?

提前致谢!

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    您可以在(私有)方法中实现 实际 功能,并从两个不同的函数中调用它(或者将方法设为公共并直接调用它)。

    在伪代码中:

    // Use bindings here to get the added Blob and its name
    [FunctionName("TestAzureFunctionBlob")]
    public static async Task Run([BlobTrigger("{name}")]Stream fileBlob, string name)
    {
        await DoTheMagicAsync(fileBlob, name);
    }
    
    // Use bindings here to het the MyObject instance from the post method
    [FunctionName("TestAzureFunctionHttp")]
    public static async Task Run([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)]MyObject myObject)
    {
        var stream = GetStreamFromHttpRequest();
        var fileName = GetNameFromHttpRequest();
    
        // Call the generic method
        await DoTheMagicAsync(stream, fileName, object);
    }
    
    private void DoTheMagicAsync(Stream stream, string name, MyObject myObject = null)
    {
        // Do your (async) magic here
    }
    
    

    【讨论】:

      【解决方案2】:

      您似乎创建了一个带有 blob 触发器的函数。如果您希望能够以其他方式触发它,而不是在 blob 存储中创建新文件,您应该考虑使用 http 触发器或服务总线触发器。

      【讨论】:

        猜你喜欢
        • 2021-11-04
        • 2023-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多