2016-05-15 52 views
0

如何部署調用SQL DB存儲過程的邏輯應用程序?我已經嘗試了以下操作。使用ARM模板/ powershell部署邏輯應用程序

"actions": { 
      "Execute_stored_procedure": { 
       "conditions": [ ], 
       "inputs": { 
       "body": null, 
       "host": { 
        "api": { 
        "runtimeUrl": "https://logic-apis-northcentralus.azure-apim.net/apim/sql" 
        }, 
        "connection": { 
        "name": "<sql connection string>" 
        } 
       }, 
       "method": "post", 
       "path": "/datasets/default/procedures/@{encodeURIComponent(encodeURIComponent(string('<stored-procedure-name>')))}" 
       }, 
       "type": "apiconnection" 
      } 
      } 

當我部署此模板,邏輯應用程序獲取的創造,但它拋出錯誤或SQL連接動作沒有出現在設計視圖。我在這裏做錯了什麼?邏輯應用程序用於調用當前由arm支持的SQL存儲過程?

+0

您的ARM模板是否還具有創建連接的步驟? – TusharJ

+0

目前不是。我找不到關於創建SQL API連接的模板的任何文檔。 – harryjohn

回答

0

我終於從@TusharJ鏈接想通了這一點的樣本模板,我張貼我使用的模板在下面配置一個按特定時間間隔調用SQL DB存儲過程的LogicApp。

resources: 
[ 
    { 
    "type": "Microsoft.Web/connections", 
    "apiVersion": "2015-08-01-preview", 
    "location": "[resourceGroup().location]", 
    "name": "sqlconnector", 
    "properties": { 
     "api": { 
     "id": "[concat('subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/sql')]" 
     }, 
     "displayName": "sqlconnector", 
     "parameterValues": { 
     "sqlConnectionString": "<sql db connection string>" 
     } 
    } 
    }, 
    { 
    "type": "Microsoft.Logic/workflows", 
    "apiVersion": "2015-08-01-preview", 
    "name": "[parameters('logicAppName')]", 
    "location": "[resourceGroup().location]", 
    "tags": { 
     "displayName": "LogicApp" 
    }, 
    "properties": { 
     "sku": { 
     "name": "[parameters('workflowSkuName')]", 
     "plan": { 
      "id": "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('svcPlanName'))]" 
     } 
     }, 
     "definition": { 
     "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2015-08-01-preview/workflowdefinition.json#", 
     "contentVersion": "1.0.0.0", 
     "parameters": { 
      "$connections": { 
      "defaultValue": { }, 
      "type": "Object" 
      } 
     }, 
     "triggers": { 
      "recurrence": { 
      "type": "recurrence", 
      "recurrence": { 
       "frequency": "Hour", 
       "interval": 1 
      } 
      } 
     }, 
     "actions": { 
      "Execute_stored_procedure": { 
      "conditions": [ ], 
      "inputs": { 
       "body": null, 
       "host": { 
       "api": { 
        "runtimeUrl": "[concat('https://logic-apis-', resourceGroup().location, '.azure-apim.net/apim/sql')]" 
       }, 
       "connection": { 
        "name": "@parameters('$connections')['sql']['connectionId']" 
       } 
       }, 
       "method": "post", 
       "path": "/datasets/default/procedures/@{encodeURIComponent(encodeURIComponent(string('[dbo].[<Stored Proc Name>]')))}" 
      }, 
      "type": "apiconnection" 
      } 
     }, 
     "outputs": { } 
     }, 
     "parameters": { 
     "$connections": { 
      "value": { 
      "sql": { 
       "connectionId": "[resourceId('Microsoft.Web/connections', 'sqlconnector')]", 
       "connectionName": "sqlconnector", 
       "id": "[reference(concat('Microsoft.Web/connections/', 'sqlconnector'), '2015-08-01-preview').api.id]" 
      } 
      } 
     } 
     } 
    } 
    } 
] 
+0

非常感謝Harry分享這個。 – TusharJ

1

自從上一個答案發布以來,API可能發生了變化。這是我2016年10月以來的工作。注意:對於許多變量,我使用了參數(定義未顯示):

{ 
    "type": "Microsoft.Web/connections", 
    "apiVersion": "2015-08-01-preview", 
    "location": "[parameters('location')]", 
    "name": "[variables('sql_conn_name')]", 
    "properties": { 
    "api": { 
     "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/sql')]" 
    }, 
    "displayName": "sql_connection", 
    "parameterValues": { 
     "server": "[concat(variables('dbserver_unique_name'), '.database.windows.net')]", 
     "database": "[parameters('databases_name')]", 
     "authType": "windows", 
     "username": "[parameters('databases_admin_user')]", 
     "password": "[parameters('databases_admin_password')]" 
    } 
    } 
}, 
{ 
    "type": "Microsoft.Logic/workflows", 
    "name": "[variables('logic_app_name')]", 
    "apiVersion": "2016-06-01", 
    "location": "[parameters('location')]", 
    "properties": { 
    "state": "Enabled", 
    "definition": { 
     "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", 
     "contentVersion": "1.0.0.0", 
     "parameters": { 
     "$connections": { 
      "defaultValue": { }, 
      "type": "Object" 
     } 
     }, 
     "triggers": { 
     "Recurrence": { 
      "recurrence": { 
      "frequency": "Hour", 
      "interval": 1 
      }, 
      "type": "Recurrence" 
     } 
     }, 
     "actions": { 
     "Execute_stored_procedure": { 
      "runAfter": { }, 
      "type": "ApiConnection", 
      "inputs": { 
      "body": { 
       "timeoffset": "-4" 
      }, 
      "host": { 
       "api": { 
       "runtimeUrl": "[concat('https://logic-apis-', parameters('location'), '.azure-apim.net/apim/sql')]" 
       }, 
       "connection": { 
       "name": "@parameters('$connections')['sql']['connectionId']" 
       } 
      }, 
      "method": "post", 
      "path": "/datasets/default/procedures/@{encodeURIComponent(encodeURIComponent('[dbo].[usp_UpdateHourlyOos]'))}" 
      } 
     } 
     }, 
     "outputs": { } 
    }, 
    "parameters": { 
     "$connections": { 
     "value": { 
      "sql": { 
      "connectionId": "[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/connections/', variables('sql_conn_name'))]", 
      "connectionName": "[variables('sql_conn_name')]", 
      "id": "[concat(subscription().id,'/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/sql')]" 
      } 
     } 
     } 
    } 
    }, 
    "resources": [ ], 
    "dependsOn": [ 
    "[resourceId('Microsoft.Web/connections', variables('sql_conn_name'))]" 
    ] 
} 
+0

看起來模板中使用的api版本是最新版本('2016-06-01'),而我之前使用的版本('2015-08-01-preview')仍然是預覽版本。 – harryjohn

相關問題