我将从我们希望拥有的行为开始:
我们最初的研究使它看起来像带有 Azure 逻辑应用程序的 BizTalk 很适合这个,但现在我正在研究概念证明,我遇到了障碍,即:
我已经能够创建一个逻辑应用程序,公开一个端点,用一个 JSON 主体调用它,并让逻辑应用程序解析该 JSON 并有条件地执行操作,一旦我弄清楚如何做所有这些,它就很漂亮感人的。
所以我的问题有两个方面:
我正在创建一个ARM模板,用于部署Web App(Mvc Api)和Logic App.
我试图定义逻辑应用内的HTTP操作,使得它动态地连接了API的基本URI以及使用当前项的属性splitOn和@triggerBody().基本Uri本身从ARM模板中的一组参数连接成变量variables('hockeyAppAPISettings').Uri.
这是动作定义的相关剪辑:
"actionName": {
"conditions": [ ],
"inputs": {
"authentication": {
"audience": "[variables('apiSettings').Authentication.Audience]",
"clientId": "[variables('apiSettings').Authentication.ClientId]",
"secret": "[variables('apiSettings').Authentication.Secret]",
"tenant": "[variables('apiSettings').Authentication.Tenant]",
"type": "ActiveDirectoryOAuth"
},
"method": "patch",
"uri": "[concat(variables('apiSettings').Uri, '/@{triggerBody()['Id']}/ScanningInProgress')]"
//"uri": "[concat(variables('apiSettings').Uri, '//@{triggerBody()[/'Id/']}//ScanningInProgress')]"
//"uri": "[concat(variables('apiSettings').Uri, '//@@{triggerBody()[/'Id/']}//ScanningInProgress')]"
},
"type": "Http"
},
Run Code Online (Sandbox Code Playgroud)
这"uri"节是我正在努力的方面.我已经通过这种方式在不同的模式中洒了各种转义字符(\和@).
我要么无法使部署成功,而是部署错误,例如:
无法解析模板语言表达式'concat(变量('apiSettings').Uri,'// @ {triggerBody()[/'Id /']} // ScanningInProgress')':期望令牌'RightParenthesis'和实际'标识符".有关使用详情,请参阅 http://aka.ms/arm-template-expressions ..'.
或者,如果我使部署工作,然后在部署后查看门户中的代码,则字符串连接似乎无法正常工作.变量不会转换为其值.
我已经验证过,如果我使用以下方式直接编辑Uri(通过门户网站HTML编辑器):"uri" : "https://edited.azurewebsites.net/api/Packages/@{triggerBody()['Id']}/ScanningInProgress"Logic App将为来自HTTP触发器的每个项目进行补丁调用.
我究竟做错了什么?
我有一个 Azure 逻辑应用程序,每小时从网站获取一个文件并在 OneDrive 中创建一个文件。由于该文件没有动态名称,因此每次都会被替换。有没有办法将当前日期时间放在文件名中?
谢谢你,大卫
如何访问逻辑应用程序中的 Key Vault 机密以提供 SQL 连接器的安全身份验证。?我们是否有可能配置应用程序的 JSON 脚本?
逻辑应用设计工作流程:
我想在 JSON 脚本和用户名和密码中配置 ConnectionName、SQL ServerName、SQL 数据库名称值,我想从 JSON 脚本中的 KeyVault 获取。
任何人都可以让我知道 JSON 配置应该如何?
我正在关注下一个教程:https://docs.microsoft.com/en-us/azure/azure-functions/functions-twitter-email.我在Chrome中连接到Twitter时遇到了一些问题,切换到Edge并且能够建立连接.
但是,对于本教程前面创建的情绪分析,我会在两种浏览器中不断获得消息
请检查您的帐户信息和/或权限,然后重试.
我首先想到,在服务启动之前需要一段时间,所以我使用相同的Key1并进入API概述,人们可以在提供密钥后测试服务.这很有效.
所以我想知道如何继续或如何解决连接问题,因为分析服务密钥工作.
我正在尝试在Azure Logic App中阅读邮件的内容正文,但我没有取得多大成功.我看到很多建议说主体是base64编码的,建议使用以下代码进行解码:
@{json(base64ToString(triggerBody()?['ContentData']))}
Run Code Online (Sandbox Code Playgroud)
该base64ToString(...)部分正在将内容正确解码为字符串,但该字符串似乎包含一个前缀,其中包含一些额外的序列化信息:
@string3http://schemas.microsoft.com/2003/10/Serialization/?3{"Foo":"Bar"}
Run Code Online (Sandbox Code Playgroud)
该字符串中还有一些额外的字符未在我的浏览器中显示.因此该json(...)函数不接受输入,而是给出错误.
InvalidTemplate.无法在第1行和第2451行的"HTTP"输入中处理模板语言表达式:'模板语言函数'json'参数无效.
@string3http://schemas.microsoft.com/2003/10/Serialization/?3{"Foo":"bar" }无法解析提供的值 :Unexpected character encountered while parsing value: @. Path '', line 0, position 0..有关使用详情,请参阅https://aka.ms/logicexpressions#json.'.
作为参考,使用.NET服务总线客户端将消息添加到主题中(客户端应该无关紧要,但这看起来更像C#-ish):
await TopicClient.SendAsync(new BrokeredMessage(JsonConvert.SerializeObject(item)));
Run Code Online (Sandbox Code Playgroud)
如何在Logic App中将其正确读取为JSON对象?
我想使用Application Insights来监控链接多个Azure功能的逻辑应用程序.我希望链尽可能安全,如果出现问题,我想让http请求无法被函数正确处理.我想我可以在出现问题时从Application Insights发出警报,但是我不确定如何将失败的消息发送到blob或"失败的消息队列"中.
Application Insights Alert是否可以成为将数据添加到blob的函数的触发器?
azure azure-application-insights azure-logic-apps azure-functions
我可以使用C#SDK检索Logic App连接器的元数据吗?我正在使用以下命令获取逻辑应用程序:Microsoft.Azure.Management.Logic.LogicManagementClient.Workflows.Get(resourceGroupName, logicAppName),但这仅提供App的详细信息,而没有告诉您如何读取连接器的元数据。
据我所知,可以使用 Terraform 构建逻辑应用程序。但是,文档仍然不是很好,而且这个功能看起来很新。
TF 和 Azure 逻辑应用程序有哪些限制?有吗?
我想构建两个应用程序,一个是每个月触发的,另一个是由 https 请求触发的。我希望这些然后运行两个 python 脚本,我希望后一个脚本将此脚本的结果返回到调用 https 的客户端。
这可以在 Terraform 中实现自动化吗?目前,关于此的示例和文档很少。任何评论或提示都是有帮助的,并张开双臂迎接!
azure-logic-apps ×10
azure ×5
c# ×1
json ×1
servicebus ×1
terraform ×1
workflow-definition-language ×1
xml ×1