Azure逻辑应用程序的ARM模板-SQL创建触发器

时间:2019-06-27 12:02:25

标签: azure azure-sql-database azure-logic-apps

是否可以为触发SQL中记录创建的逻辑应用构建ARM模板?

我尝试了各种方法,但我经常遇到的问题是找不到连接。

我已经在Azure中创建了连接,并通过使用该连接通过门户手动创建逻辑应用程序证明了该连接有效。

这是我最新的实现(目前为硬编码):

{
      "type": "Microsoft.Logic/workflows",
      "apiVersion": "2017-07-01",
      "name": "Data-Sync-Scheduler",
      "location": "[parameters('location')]",
      "properties": {
        "state": "Enabled",
        "definition": {
          "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
          "actions": {
            "HTTP": {
              "inputs": {
                "method": "GET",
                "queries": {
                  "scheduleId": "@{triggerBody()?['ScheduleId']}"
                },
                "uri": "<MY URL>"
              },
              "operationOptions": "DisableAsyncPattern",
              "runAfter": {},
              "type": "Http"
            }
          },
          "contentVersion": "1.0.0.0",
          "outputs": {},
          "parameters": {
            "$connections": {
              "defaultValue": {
                "sql": {
                  "connectionId": "/subscriptions/<ID>/resourceGroups/AZJACK001/providers/Microsoft.Web/connections/sql_2",
                  "connectionName": "sql_2",
                  "id": "/subscriptions/<ID>/providers/Microsoft.Web/locations/centralus/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('[dbo].[Schedule]'))}/onnewitems"
              },
              "recurrence": {
                "frequency": "Minute",
                "interval": 1
              },
              "splitOn": "@triggerBody()?['value']",
              "type": "ApiConnection"
            }
          }
        }
      }
    }

编辑1:这是Azure SQL托管的数据库。

1 个答案:

答案 0 :(得分:1)

我遇到的问题是Logic App参数和ARM参数之间的差异,我的解决方案如下:

{
      "type": "Microsoft.Logic/workflows",
      "apiVersion": "2017-07-01",
      "name": "Data-Sync-Scheduler",
      "location": "[parameters('location')]",
      "properties": {
        "state": "Enabled",
        "definition": {
          "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
          "actions": {
            "HTTP": {
              "inputs": {
                "method": "GET",
                "queries": {
                  "scheduleId": "@{triggerBody()?['ScheduleId']}"
                },
                "uri": "<MY URL>"
              },
              "operationOptions": "DisableAsyncPattern",
              "runAfter": {},
              "type": "Http"
            }
          },
          "contentVersion": "1.0.0.0",
          "outputs": {},
          "parameters": {
            "$connections": {
              "defaultValue": {},
              "type": "Object"
            }
          },
          "triggers": {
            "When_an_item_is_created": {
              "inputs": {
                "host": {
                  "connection": {
                    "name": "@parameters('$connections')['sql_2']['connectionId']"
                  }
                },
                "method": "get",
                "path": "/datasets/default/tables/@{encodeURIComponent(encodeURIComponent('[dbo].[Schedule]'))}/onnewitems"
              },
              "recurrence": {
                "frequency": "Minute",
                "interval": 1
              },
              "splitOn": "@triggerBody()?['value']",
              "type": "ApiConnection"
            }
          }
        },
        "parameters": {
          "$connections": {
            "value": {
              "sql_2": {
                "connectionId": "/subscriptions/<MY ID>/resourceGroups/AZJACK001/providers/Microsoft.Web/connections/sql_2",
                "connectionName": "sql_2",
                "id": "/subscriptions/<MY ID>/providers/Microsoft.Web/locations/centralus/managedApis/sql"
              }
            },
            "type": "Object"
          }
        }
      }
    }