azure-functions - 从 API A、B、C 获取数据并将它们推送到 API X

标签 azure-functions azure-data-factory azure-data-factory-2

我一直在修补 Azure Data bricks 和 Azure data factory,我想知道当你只想通过调用这些服务 API (Rest) 从一些服务中获取数据,然后推送时,这些是否有点过分这些数据也使用 Rest API 发送到服务 X。

我已经看到数据工厂可以调用 rest API(但似乎不支持 Oauth2),但我还没有发现任何关于将数据推送到另一个 rest Api 的信息(而且整合所有内容并没有真正意义此时在 Azure 数据库中)

那么,我应该使用数据工厂,还是编写一个 python 脚本并使用 Azure Functions 调用它更适合解决这个问题?

问候,

最佳答案

只有当数据可以非常直接地从一个数据库(或文件)移动到另一个数据库时,我才更喜欢使用 DataFactory。当您需要更多逻辑来与 API 交互时(例如在您的情况下),使用 DataFactory 几乎没有附加值(value),因为您已经需要一些计算(例如 Azure Functions)。

如果您的数据摄取是某种工作流程(例如,在推送到 X 之前,您需要按特定顺序排列 A、B 和 C),那么我建议使用 Durable Functions具有功能链和扇出/扇入模式。我也有一些 video content我在这里解释一下。

这里是一个使用函数链的编排的小伪代码示例:

var id = input.GetInput<string>();
var a = await context.CallActivityAsync<DataA>("CallApiAActivity", id);
var b = await context.CallActivityAsync<DataB>("CallApiBActivity", id);
var c = await context.CallActivityAsync<DataC>("CallApiCActivity", id);
var combined = Builder.CombineABC(a, b, c);

return  await context.CallActivityAsync<bool>("PushToApiXActivity", combined);

如果对 A、B 和 C 的调用不相关,那么我建议您进行扇出/扇入,以便可以并行调用这些函数。

Durable Functions 的好处是编排是有状态的,并且会为每个事件函数调用创建存储检查点。这通过使用 CallActivityWithRetryAsync 方法启用自动重试。这在处理您无法控制的服务时特别有用,并使您的解决方案更具弹性。

关于azure-functions - 从 API A、B、C 获取数据并将它们推送到 API X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57462093/

相关文章:

Azure 数据工厂管道运行 FTP 失败

azure-data-factory - 在 Azure 数据工厂映射数据流中使用参数化数据集

sql-server - 暂停 Azure 功能,直到 Entity Framework 进行更改

azure - 如何使用 ARM 模板为 azure 函数应用程序创建身份提供程序?

azure - 使用 ADF 使用客户端证书进行 REST API 身份验证

azure-data-factory - 如何在 Azure 数据工厂的 ForEach 事件中创建迭代范围变量

azure-data-factory - azure 数据工厂获取查找事件错误输出

c# - ApiHubFile Azure Function 绑定(bind)的动态输出文件名(一个驱动器、投递箱等)

c# - 部署后Az​​ure函数应用程序设置为空

Azure 数据工厂链接 GitHub 存储库以进行源代码管理?