Compartir a través de

使用绑定将函数连接到 Azure 服务

创建函数时,请将特定于语言的触发器代码从一组触发器模板添加到项目中。 若要使用输入或输出绑定将函数连接到其他服务,则必须在函数中添加特定的绑定定义。 有关绑定的详细信息,请参阅 Azure Functions 触发器和绑定的概念

本地开发

在本地开发函数时,需要更新函数代码以添加绑定。 对于使用 function.json 的语言,Visual Studio Code 提供了向函数添加绑定的工具。

根据示例手动添加绑定

将绑定添加到现有函数时,需要向代码中的函数定义添加特定于绑定的属性。

将绑定添加到现有函数时,需要向代码中的函数定义添加特定于绑定的注释。

将绑定添加到现有函数时,需要更新函数代码并将定义添加到 function.json 配置文件。

将绑定添加到现有函数时,需要更新函数定义(具体取决于所用模型):

需要向代码中的函数定义添加特定于绑定的注释。

以下示例展示了将队列存储输出绑定添加到 HTTP 触发的函数之后的函数定义:

[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, 
    [Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg, 
    ILogger log)

定义输出绑定的方式取决于你的流程模型。 有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "queue",
      "direction": "out",
      "name": "msg",
      "queueName": "outqueue",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

定义输出绑定的方式取决于 Node.js 模型的版本。 有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

定义输出绑定的方式取决于 Python 模型的版本。 有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "queue",
      "direction": "out",
      "name": "msg",
      "queueName": "outqueue",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

定义输出绑定的方式取决于 Node.js 模型的版本。 有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定

使用下表查找特定绑定类型的示例,这些示例可用来指导你更新现有函数。 首先,选择与你的项目相对应的语言选项卡。

服务 示例 示例
Blob 存储 触发器
输入
输出
链接
Azure Cosmos DB 触发器
输入
输出
链接
Azure SQL 触发器(预览)
输入
输出
链接
事件网格 触发器
输出
链接
事件中心 触发器
输出
IoT 中心 触发器
输出
HTTP 触发器 链接
队列存储 触发器
输出
链接
RabbitMQ 触发器
输出
SendGrid 输出
服务总线 触发器
输出
链接
SignalR 触发器
输入
输出
表存储 输入
输出
计时器 触发器 链接

Visual Studio Code

使用 Visual Studio Code 开发函数且函数使用 function.json 文件时,Azure Functions 扩展可自动将绑定添加到现有 function.json 文件。 若要了解详细信息,请参阅添加输入和输出绑定

Azure 门户

Azure 门户中开发函数时,可以在给定函数的“集成”选项卡中添加输入和输出绑定。 新绑定将添加到 function.json 文件或方法属性,具体取决于你的语言。 以下文章显示的示例介绍了如何在门户中向现有函数添加绑定:

后续步骤