使用 Azure 函数返回值

本文解释了返回值在函数内如何工作。 在支持返回值的语言中,可以将函数输出绑定绑定到返回值。

将 function.json 中的 name 属性 设置为 $return。 如果有多个输出绑定,请只使用其中一个绑定的返回值。

如何使用返回值取决于你在函数应用中使用的 C# 模式:

有关详细信息和示例,请参阅 .NET 辅助角色指南中的输出绑定

下面是 function.json 文件中的输出绑定:

{
    "name": "$return",
    "type": "blob",
    "direction": "out",
    "path": "output-container/{id}"
}

JavaScript 代码如下所示:

module.exports = function (context, input) {
    var json = JSON.stringify(input);
    context.log('Node.js script processed queue message', json);
    return json;
}

下面是 function.json 文件中的输出绑定:

{
    "name": "Response",
    "type": "blob",
    "direction": "out",
    "path": "output-container/{blobname}"
}

以下 PowerShell 代码使用 http 输出绑定的返回值:

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body = $blobname
    })

下面是 function.json 文件中的输出绑定:

{
    "name": "$return",
    "type": "blob",
    "direction": "out",
    "path": "output-container/{id}"
}

下面是 Python 代码:

def main(input: azure.functions.InputStream) -> str:
    return json.dumps({
        'name': input.name,
        'length': input.length,
        'content': input.read().decode('utf-8')
    })

将输出绑定注释应用于函数方法。 如果有多个输出绑定,请只使用其中一个绑定的返回值。

以下 Java 代码使用输出绑定的返回值:

@FunctionName("QueueTrigger")
@StorageAccount("AzureWebJobsStorage")
@BlobOutput(name = "output", path = "output-container/{id}")
public static String run(
  @QueueTrigger(name = "input", queueName = "inputqueue") WorkItem input,
  final ExecutionContext context
) {
  String json = String.format("{ \"id\": \"%s\" }", input.id);
  context.getLogger().info("Java processed queue message. Item=" + json);
  return json;
}

后续步骤