我目前有两个Azure订阅设置,一个用于DEV,一个用于TEST。我已经通过Visual Studio创建了一个Logic App,我遇到的问题是,当我打开Logic App设计器时,必须将Logic App链接到订阅和资源组:
如果我将其链接到DEV订阅,则显然这使我无法将逻辑应用程序部署到TEST订阅。这是否意味着我将不得不为测试创建一个完全相同的Logic App,还是我将以错误的方式进行操作?
答案 0 :(得分:1)
我最终找到了解决方案。潜在的问题是,在我的逻辑应用程序内部,我正在使用直接连接到我的一个订阅中的函数的函数应用程序连接器,因此当我尝试将逻辑应用程序部署到另一个订阅时,由于该函数已经链接到另一个订阅,它失败订阅。 我设法将功能ID参数化,以便可以部署到任何Subscription。
"function": { "id": "[resourceId('Microsoft.Web/sites/functions', parameters('functionAppName'), variables('functionName'))]" }
答案 1 :(得分:0)
实际上,链接订阅与部署无关紧要,如果您完成了Logic Apps的构建,则可以选择其他帐户,订阅和资源组进行部署。
因为它使用.ps1文件来部署LogicApp.json,因此与模板部署相同。
关于Logic Apps中的功能,您不能仅添加功能。您必须使用HTTP触发功能,然后在Logic Apps中使用HTTP请求。有关说明,您可以参考此和此doc。
答案 2 :(得分:0)
对我有用的方法是转到代码视图并复制 json。
请注意,通过复制您的连接和订阅引用,这些可能会导致您指向的新位置出现问题,尤其是当您跨组织时。
步骤是:
逻辑应用 --> 编辑 --> 代码视图 - 复制源逻辑应用
登录新订阅或组织
逻辑应用 --> 新的空白逻辑应用 --> 编辑 --> 代码查看和粘贴 - 尝试保存。如果您正在移动订阅/组织,则对 API 或 API 连接的任何引用以及 SQL 引用都可能会失败。
在这种情况下,我建议创建另一个简单的逻辑应用程序,并首先通过该应用程序添加连接,最好使用相同或相似的名称。
进入上面的代码视图并向右滚动到这个普通逻辑应用程序的底部并检查引用并复制 Id 和连接 Id:
显示如下内容:
"connectionId": "/subscriptions/xxxxxx/resourceGroups/xxxxxx/providers/Microsoft.Web/connections/sql",
"connectionName": "sql",
"id": "/subscriptions/xxxxxx/providers/Microsoft.Web/locations/uksouth/managedApis/sql"
您需要在此处更新对您在工作逻辑应用上拥有的正确订阅和组织的引用。