0

我在 azure 上托管了我的网站,现在我想按月安排付款。我正在使用 Authorize.net 进行付款,但我无法使用他们的定期计费功能,因为它提供的控制很少。我必须在数据库中执行检查、付款和更新记录。我应该使用 Azure 调度程序、Azure WebJob 或 Azure Functions 作为辅助角色吗?

4

2 回答 2

2

绝对不是工人角色。它们非常重量级,通常不值得为这样的单一简单工作付出努力。

网络作业可能是一个很好的解决方案。它可以在您的 Web 应用程序的上下文中运行,因此您可以免费使用它。但是您需要对此进行一些开发 - 您必须创建一个调用 Authorize.net 的应用程序。

如果您只需要触发单个 HTTP 请求,那么使用 Azure 调度程序来安排此 HTTP 操作可能是一个不错的选择。您可以配置请求本身(标头、有效负载),它也具有错误处理功能。但您可能必须将敏感信息存储在 Azure 门户中的计划作业配置中。

所以我会说忘记工人角色,然后权衡简单性与灵活性和开发工作量。很遗憾,我可能会使用调度程序尝试它,然后如果遇到调度程序不可行的事情,则继续进行 WebJob。

编辑:

Azure Functions 也是一个不错的选择——我想说它是 webjob 和简单计划选项之间的中间地带。它是应用程序服务功能集的一部分,因此它可以在与 Web 应用程序相同的应用程序服务计划中运行,因此无需任何费用。但是在这里,您也必须自己编写对 Authorize.net 的 http 请求。但与 webjobs 相比,Azure Functions 轻量级得多 - 您不必创建 exe(或 ps 脚本或其他),只需在 Azure 门户内的脚本编辑器中对 http 请求进行编码即可。但是你仍然必须自己做。不过,这比简单的计划选项更灵活一些,这是在处理错误时需要考虑的事情。

所以这是一个很好的中间地带,但我认为考虑到任务的复杂性(即触发单个 HTTP 请求),它仍然需要做很多工作。

于 2017-05-04T11:22:13.743 回答
1

为了让它快速运行,Logic Apps 是一个不错的选择。使用逻辑应用程序,您可以使用基于您定义的时间表的计时器触发它,使用开箱即用的 SQL/DocDB(取决于您的具体场景)连接到您的数据库。尽管目前没有可用的 Authorize.net 连接器,但您应该能够使用通用 HTTP 操作与其 RESTful API 对话。最有可能的是,您应该能够非常快速地完成这项工作。我还建议在 aka.ms/logicapps-wish 上提交建议,以便我们可以跟踪 Authorize.net 连接器的请求,如果可用,这将使这变得更加容易。

于 2017-05-05T04:42:41.200 回答