使用绑定将函数连接到 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 文件或方法属性,具体取决于你的语言。 以下文章显示的示例介绍了如何在门户中向现有函数添加绑定: