你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用绑定将函数连接到 Azure 服务
创建函数时,请将特定于语言的触发器代码从一组触发器模板添加到项目中。 若要使用输入或输出绑定将函数连接到其他服务,则必须在函数中添加特定的绑定定义。 有关绑定的详细信息,请参阅 Azure Functions 触发器和绑定的概念。
本地开发
在本地开发函数时,需要更新函数代码以添加绑定。 对于使用 function.json 的语言,Visual Studio Code 提供了向函数添加绑定的工具。
根据示例手动添加绑定
将绑定添加到现有函数时,需要向代码中的函数定义添加特定于绑定的属性。
将绑定添加到现有函数时,需要向代码中的函数定义添加特定于绑定的注释。
将绑定添加到现有函数时,需要更新函数代码并将定义添加到 function.json 配置文件。
以下示例展示了将队列存储输出绑定添加到 HTTP 触发的函数之后的函数定义:
由于 HTTP 触发的函数也会返回 HTTP 响应,因此该函数将返回一个 MultiResponse
对象,表示 HTTP 和队列输出。
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
此示例是包含输出绑定的 MultiResponse
对象的定义:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
向你自己的项目应用该示例时,可能需要将 HttpRequest
更改为 HttpRequestData
,将 IActionResult
更改为 HttpResponseData
,具体取决于你是否使用 ASP.NET Core 集成。
函数完成后,这些消息被发送到队列。 定义输出绑定的方式取决于你的流程模型。 有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定。
@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) {
有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定。
$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 模型的版本。 有关详细信息,包括你可以参考的示例绑定代码的链接,请参阅向函数添加绑定。
使用下表查找特定绑定类型的示例,这些示例可用来指导你更新现有函数。 首先,选择与你的项目相对应的语言选项卡。
C# 的绑定代码取决于特定的进程模型。
服务 | 示例 | 示例 |
---|---|---|
Blob 存储 | 触发器 输入 输出 |
链接 |
Azure Cosmos DB | 触发器 输入 输出 |
链接 |
Azure 数据资源管理器 | 输入 输出 |
链接 |
Azure SQL | 触发器 输入 输出 |
|
事件网格 | 触发器 输出 |
链接 |
事件中心 | 触发器 输出 |
|
IoT 中心 | 触发器 输出 |
|
HTTP | 触发器 | 链接 |
队列存储 | 触发器 输出 |
链接 |
RabbitMQ | 触发器 输出 |
|
SendGrid | 输出 | |
服务总线 | 触发器 输出 |
链接 |
SignalR | 触发器 输入 输出 |
|
表存储 | 输入 输出 |
|
计时器 | 触发器 | 链接 |
Twilio | 输出 | 链接 |
服务 | 示例 | 示例 |
---|---|---|
Blob 存储 | 触发器 输入 输出 |
链接 |
Azure Cosmos DB | 触发器 输入 输出 |
链接 |
Azure 数据资源管理器 | 输入 输出 |
|
Azure SQL | 触发器 输入 输出 |
链接 |
事件网格 | 触发器 输出 |
链接 |
事件中心 | 触发器 输出 |
|
IoT 中心 | 触发器 输出 |
|
HTTP | 触发器 | 链接 |
队列存储 | 触发器 输出 |
链接 |
RabbitMQ | 触发器 输出 |
|
SendGrid | 输出 | |
服务总线 | 触发器 输出 |
链接 |
SignalR | 触发器 输入 输出 |
|
表存储 | 输入 输出 |
|
计时器 | 触发器 | 链接 |
Twilio | 输出 | 链接 |
服务 | 示例 | 示例 |
---|---|---|
Blob 存储 | 触发器 输入 输出 |
链接 |
Azure Cosmos DB | 触发器 输入 输出 |
链接 |
Azure SQL | 触发器 输入 输出 |
|
事件网格 | 触发器 输出 |
链接 |
事件中心 | 触发器 输出 |
|
IoT 中心 | 触发器 输出 |
|
HTTP | 触发器 | 链接 |
队列存储 | 触发器 输出 |
链接 |
RabbitMQ | 触发器 输出 |
|
SendGrid | 输出 | |
服务总线 | 触发器 输出 |
链接 |
SignalR | 触发器 输入 输出 |
|
表存储 | 输入 输出 |
|
计时器 | 触发器 | 链接 |
Twilio | 输出 | 链接 |
Python 的绑定代码取决于 Python 模型版本。
Visual Studio Code
使用 Visual Studio Code 开发函数且函数使用 function.json 文件时,Azure Functions 扩展可自动将绑定添加到现有 function.json 文件。 若要了解详细信息,请参阅添加输入和输出绑定。
Azure 门户
在 Azure 门户中开发函数时,可以在给定函数的“集成”选项卡中添加输入和输出绑定。 新绑定将添加到 function.json 文件或方法属性,具体取决于你的语言。 以下文章显示的示例介绍了如何在门户中向现有函数添加绑定: