当 SQL 数据库中创建条目时触发 Azure Function

4
我想了解在SQL数据库中创建记录时是否可以触发Azure函数?我知道使用逻辑应用可以实现。

您可以始终使用逻辑应用程序进行触发,然后从该逻辑应用程序调用您的 Azure 函数.... - marc_s
目前还没有办法通过 SQL 数据库的更改来触发您的函数。也许在未来,可以通过事件网格实现这一点。 - Thiago Custodio
4个回答

2
截至2022年11月17日,AzFn上有一个名为"触发器Azure SQL pro Functions"的新功能,与一个名为“更改跟踪”的新AzureSQL功能相匹配。
“Azure SQL触发器使用SQL更改跟踪功能来监视SQL表格的更改,并在创建、更新或删除行时触发函数。”
引用: 更改跟踪已在数据库和表格上启用:
SQL
ALTER DATABASE [SampleDatabase]
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON);

ALTER TABLE [dbo].[ToDo]
ENABLE CHANGE_TRACKING;
The SQL trigger binds to a IReadOnlyList<SqlChange<T>>, a list of SqlChange objects each with 2 properties:

AzFn:

using System.Collections.Generic;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.WebJobs.Extensions.Sql;

namespace AzureSQL.ToDo
{
    public static class ToDoTrigger
    {
        [FunctionName("ToDoTrigger")]
        public static void Run(
            [SqlTrigger("[dbo].[ToDo]", ConnectionStringSetting = "SqlConnectionString")]
            IReadOnlyList<SqlChange<ToDoItem>> changes,
            ILogger logger)
        {
            foreach (SqlChange<ToDoItem> change in changes)
            {
                ToDoItem toDoItem = change.Item;
                logger.LogInformation($"Change operation: {change.Operation}");
                logger.LogInformation($"Id: {toDoItem.Id}, Title: {toDoItem.title}, Url: {toDoItem.url}, Completed: {toDoItem.completed}");
            }
        }
    }
}

GitHub存储库中提供了更多Azure SQL触发器的示例。


1

0

我正在寻找Azure函数触发器,而不是逻辑应用程序。 - Karthik Dheeraj
目前还没有触发器。请参阅 https://learn.microsoft.com/zh-cn/azure/azure-functions/functions-triggers-bindings#supported-bindings 支持的绑定。 - Sajeetharan
Azure Functions 的 Azure SQL 触发器现在处于预览状态! - SeaDude

0

您可以在Azure Functions文档中找到所有支持的触发器和绑定:Azure Functions触发器和绑定概念-支持的绑定。Azure SQL不在支持触发器列表中。

摘自本文,

为了使Azure函数触发SQL更改,有两种可能的方法。

  1. 在Azure函数中定义自定义绑定
  2. 如果Azure函数端没有绑定,则可以是SQL触发器调用Azure函数HTTP触发器。

另一种情况是更改更新SQL的后端,并使其(也)将消息推送到队列中,从而触发您的函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接