使用DotNet SDK创建LogicApp和API连接ARM模板

时间:2018-06-28 06:42:17

标签: azure azure-logic-apps azure-sdk-.net azure-sdk dotnet-sdk

我已经使用 Dot.Net SDK 创建了 Azure Logic应用。逻辑应用已成功创建,但对于触发器和操作,我想使用现有连接器。我已经手动创建了与Azur Portal的连接器。我正在传递该连接器的APIConnection或ID以请求json,但它不会连接到该连接器。我的意思是创建的Logic App没有任何连接器。

下面是我的请求Json。


{
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
    "contentVersion": "1.0.0.0",
    "outputs": {},
    "parameters": {
        "$connections": {
            "defaultValue": {
                "smtp": {
                    "connectionId": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/resourceGroups/logicapp_flow_rnd/providers/Microsoft.Web/connections/smtp",
                    "connectionName": "smtp",
                    "id": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/providers/Microsoft.Web/locations/westindia/managedApis/smtp"
                },
                "sql": {
                    "connectionId": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/resourceGroups/logicapp_flow_rnd/providers/Microsoft.Web/connections/sql",
                    "connectionName": "sql",
                    "id": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/providers/Microsoft.Web/locations/westindia/managedApis/sql"
                }
            },
            "type": "Object"
        }
    },
    "triggers": {
        "When_an_item_is_created": {
            "inputs": {
                "host": {
                    "connection": {
                        "name": "@parameters('$connections')['sql']['connectionId']"
                    }
                },
                "method": "get",
                "path": "/datasets/default/tables/@{encodeURIComponent(encodeURIComponent('LogicAppTable1'))}/onnewitems"
            },
            "recurrence": {
                "frequency": "Minute",
                "interval": 1
            },
            "splitOn": "@triggerBody()?['value']",
            "type": "ApiConnection"
        }
    },
    "actions": {
        "Send_Email": {
            "inputs": {
                "body": {
                    "Body": "New Item Created - @{triggerBody()?['Id']}",
                    "From": "info@logicappdemo.com",
                    "Subject": "LogicAppDemo - New Item Created",
                    "To": "hitesh.vaghasiya@softwebsolutions.com"
                },
                "host": {
                    "connection": {
                        "name": "@parameters('$connections')['smtp']['connectionId']"
                    }
                },
                "method": "post",
                "path": "/SendEmailV2"
            },
            "runAfter": {},
            "type": "ApiConnection"
        }
    }
}

这是Azur门户的屏幕截图。在这里,您可以看到已成功创建Logic App,但没有连接器。

Azure Portal Screen Shot

请提出建议,

谢谢

2 个答案:

答案 0 :(得分:2)

@HITESHKUMARVAGHASIYA,您好,如果您没有Visual Studio(这是最简单,最简单的选择),那么您可以依靠其他替代方法

对于SQL API连接,可以使用this template。下面我显示了SQL API连接的摘录

{   
  "type": "Microsoft.Web/connections",
  "apiVersion": "2016-06-01",
  "location": "[parameters('location')]",
  "name": "[parameters('sqlConnectionName')]",
  "properties": {
    "api": {
      "id": "[concat(subscription().id,'/providers/Microsoft.Web/locations/', parameters('location'), '/managedApis/sql')]"
    },
    "displayName": "sql_connection",
    "parameterValues": {
      "server": "[parameters('sqlServer')]",
      "database": "[parameters('sqlDatabase')]",
      "authType": "windows",
      "username": "[parameters('sqlUser')]",
      "password": "[parameters('sqlPassword')]"
    }
  }
},

要创建SMTP API连接,我还没有看到一个示例,但是您可以使用Azure CLI(例如https://shell.azure.com)获取ARM定义,然后获取资源的定义,例如。

az resource show --ids /subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/resourceGroups/logicapp_flow_rnd/providers/Microsoft.Web/connections/smtp

这将为您制作自己的ARM模板提供一个起点。

另一个选择是使用Jeff Hollan的PowerShell模板生成器,我相信它也会导出API连接。

https://github.com/jeffhollan/LogicAppTemplateCreator

HTH

答案 1 :(得分:1)

我们还可以在本地使用Azure Logic Apps Tools for Visual Studio 2017设计逻辑应用程序。使用我们的Azure帐户登录,然后我们可以将其设计为Azure门户。我们还可以切换视图或代码界面。我们可以使用Azure Logic Apps Tools for Visual Studio 2017轻松地做到这一点。 有关更多详细信息,请参阅Build and Deploy Logic Apps in Visual Studio

我使用servicebus连接对其进行了测试,在发布到Azure之后它可以正常工作

enter image description here