我打算在Azure中构建两个系统之间的集成.该应用程序的基本体系结构将是Azure等效的内部部署控制台应用程序.例如,在预定的基础上改变两个系统之间的数据
我可以在App Services中看到两种方法.
一个Web应用程序,具有Web作业.就我而言,我现在根本不需要这个网站.
具有自定义编码API应用的逻辑应用.就我而言,整个集成可能只是一个自定义API应用程序,而不是一系列链式API应用程序.
两者看起来都支持预定的活动和我需要的连接.两者看起来都会缩放,但这并不是我正在计划的事情的关注点.两者似乎都有非常简单的部署路径.真的看起来非常相似.
我认为唯一的主要区别是,Web作业的Web应用程序将始终带有一个网站.它是否正确?如果是这样的话,我可能会选择一个网络应用程序,因为可能会在遥远的未来使用该网站.
我在这里遗漏了任何会影响我决定的事吗?差别这么简单吗?
我有一个 azure 函数,如果你在它的 url 中包含一个查询参数,它会计算额外的输出。我想在一个逻辑应用程序来使用这个功能,但我正在逐渐尝试使用错误的查询蔚蓝的功能连接器的参数设置查询参数。
Queries 参数定义如下:
我有一个在 Azure 中使用的逻辑应用程序,我需要从 Http 触发器上的某些 JSON 访问某个嵌套值。
我需要访问阈值 (5) 和维度数组中第二项的值 (accountscontacts-account-deleted) 并通过逻辑应用编辑器中的表达式语法动态显示这些但无法弄清楚我在哪里我的表达有问题。
我正在尝试使用此语法来访问阈值,
first('allOf')?['threshold']
我正在尝试使用此表达式来访问第二维值,
last(first('allOf')?['dimensions'])?['value']
这些似乎都不起作用,我无法弄清楚我的 Expression 语法哪里出错了。当我尝试评估维度值逻辑时,它会抛出此错误(阈值逻辑也因类似错误而失败)
无效模板。无法在“1”行和“1660”列的“Post_message”输入中处理模板语言表达式:“模板语言表达式”last(first('allOf')?['dimensions'])?['value'] ' 无法计算,因为无法选择属性 'dimensions'。“字符串”类型的值不支持属性选择。请参阅https://aka.ms/logicexpressions了解使用详情。'。
JSON 有效负载
{
"schemaId": "AzureMonitorMetricAlert",
"data": {
"version": "2.0",
"properties": null,
"status": "Deactivated",
"context": {
"timestamp": "2019-06-11T21:26:20.5035755Z",
"id": "/URLTEXT/",
"name": "FBIS Event Bus DLQ Threshold Notifier",
"description": "",
"conditionType": "SingleResourceMultipleMetricCriteria",
"severity": "3",
"condition": {
"windowSize": "PT5M",
"allOf": [
{
"metricName": "DeadletteredMessages",
"metricNamespace": "Microsoft.ServiceBus/namespaces",
"operator": "GreaterThan",
"threshold": "5",
"timeAggregation": "Average",
"dimensions": [
{
"name": "ResourceId",
"value": …Run Code Online (Sandbox Code Playgroud) 我正在创建一个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 中 WebJobs、Functions 和 Logic Apps 的文档,但我找不到一种方法来通过代码安排一次性执行流程。我的用户需要能够安排通知在未来的特定时间发出(通常在安排后的几个小时或一天内)。我在这些进程上阅读的所有内容都使用 CRON 表达式,它不是为一次性执行而设计的。我意识到我可以安排作业间隔运行并检查数据库以查看作业的其余部分是否需要运行,但我希望尽可能避免不必要地运行作业。任何帮助表示赞赏。
如果相关,我正在使用 C#、ASP.NET MVC Core、App Services 和 SQL 数据库,所有这些都托管在 Azure 中。我的计划是使用 Logic 应用程序检查数据库中的计划事件,并通过 Twilio、SendGrid 和 iOS/Android 推送通知发送通知。
azure azure-webjobs azure-logic-apps azure-sql-database azure-functions
我正在尝试在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对象?
我想验证我的天蓝色逻辑应用程序中的值,该值遵循可以通过正则表达式识别的模式。
我的值是KUL-MXY,这里KUL是固定值,但M的值可以是“KG”,“TON”等,X和Y的值也可以是数字。
我在逻辑应用程序中搜索了 RegEx 相关表达式,但没有找到任何内容。
任何人都可以建议可能的方法来处理这个问题吗?
我正在尝试使用逻辑应用程序和(未经身份验证的)o365 连接来部署 ARM 模板。这是我的模板:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"LogicAppName": "MyLogicApp"
},
"resources": [
{
"type": "Microsoft.Logic/workflows",
"apiVersion": "2017-07-01",
"name": "[variables('LogicAppName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"state": "Enabled",
"definition": {
"parameters": {
"$connections": {
"defaultValue": {
},
"type": "Object"
}
},
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion": "1.0.0.0",
"triggers": {
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"schema": …Run Code Online (Sandbox Code Playgroud) 我得到了一个使用大量逻辑应用程序和连接器(ftp/sftp)到不同合作伙伴的解决方案。我的问题是出站逻辑应用 IP 的白名单。我知道有一个出站 IP 列表,但出于安全原因,大多数合作伙伴只会开放少数几个 IP,并且 IP 应该是静态的,因此不会经常更改。
所以我的问题是,是否可以将静态 IP 作为我所有逻辑应用程序的出站 IP?
谢谢
azure-logic-apps ×10
azure ×5
json ×2
architecture ×1
c# ×1
identifier ×1
regex ×1
servicebus ×1
triggers ×1
whitelist ×1