使用Azure CLI将逻辑APP从一个资源组复制到另一资源组

时间:2019-06-27 06:07:27

标签: azure azure-logic-apps azure-cli

我已经创建了一个逻辑应用程序,现在我想将相同的逻辑复制到另一个可用于测试环境的资源组中。

有人可以通过Azure CLI命令或Azure门户本身中的任何直接选项来帮助我,以将逻辑应用程序从一个资源组复制到另一个资源组。

我在Azure门户中进行了检查,当我使用它只是将我的逻辑应用程序从资源组1移到资源组2时,我只能看到“移动”选项。但是我的要求是,资源组。

谢谢。

关于, 人体模型

4 个答案:

答案 0 :(得分:3)

您可以使用Logic app VS tools将逻辑应用程序和连接下载为ARM模板,从而包含您设置的所有连接。

然后,您可以编辑它,如果使用Visual Studio,只需将LogicApp.json替换为您下载的LogicApp.json。

  

如果您选择的连接器需要您输入,则将显示一个PowerShell窗口   在后台打开并提示您输入任何必要的密码或   秘密密钥。输入此信息后,部署将继续。

您还可以使用Azure Cli部署模板。

答案 1 :(得分:1)

Azure portal中,您可以使用// Create a new message to send to the queue string messageBody = $"Message {i}"; var message = new Message(Encoding.UTF8.GetBytes(messageBody)); // Write the body of the message to the console Console.WriteLine($"Sending message: {messageBody}"); // Send the message to the queue await queueClient.SendAsync(message); 按钮轻松复制逻辑应用程序

enter image description here

答案 2 :(得分:1)

这可能会使连接有些混乱,但是我发现这种方法对于大型LA而言比在新资源组中手动重新创建相同的LA更快。

  1. 打开逻辑应用(LA01),单击“克隆”按钮,并以其他名称(LA02)将其保存在同一资源组中。
  2. 打开LA02,然后在资源组附近单击“更改”。 enter image description here 选择要将其移动到的新资源组。如果需要,您也可以选择相关资源,但是您可能也想复制它们。请确保您了解与移动的资源关联的所有工具和脚本在更新它们以使用新的资源ID之前将无法使用。此操作可能需要一些时间。
  3. 可选。您可能要使用与上一个资源组相同的名称(LA01)。可悲的是,我认为您不能在Azure中重命名项目,因此再次执行步骤1以使用LA01名称进行复制并将LA02从新资源组中删除。
  4. 完成这些步骤后,打开复制的LA并重新创建所有连接。

答案 3 :(得分:0)

我还发现了另一种非常巧妙的方法来更新其他资源组中现有的 LA。它可能看起来有点乱,但是当你多次这样做时,你可以比总是克隆 LA 快得多。当您打开 LA 并单击 Code view 时,您需要注意每个 LA 结构类似于下面的示例。您可以将 LA1(资源组 1)中的所有代码从顶部到 outputs 复制粘贴到新的 LA2(资源组 2)中,但是第一次执行此操作时需要在 LA2 中进行一些更改:< /p>

  • SomeActions - 这将按原样复制粘贴
  • $connections - 必须保持原样,它是指向 LA 连接定义的指针
  • OtherParameters - 这是您将传递给 LA 的参数,因此通常对于不同的资源组,您使用不同的参数,因此请记住这一点并在这种情况下进行相应更改
  • SomeTrigger - 通常你应该保持它在 LA2 中的定义。
  • SomeConnection - 最重要的部分是确保在两个 LA 中您使用相同的连接引用。如果不是这种情况,则从 SomeActions 部分检索连接引用名称,并更新 SomeConnection,但保留 LA2 中定义的 connectionIdconnectionName,因此只有两个 LA 之间的连接名称匹配。

下次您要进行更新时,只需获取代码,然后复制从顶部到 outputs 的所有内容。

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
           ...SomeActions
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {
            "$connections": {
                "defaultValue": {},
                "type": "Object"
            },
            "OtherParameters": {
                "defaultValue": "SomeValue",
                "type": "String"
            }
        },
        "triggers": {
            "manual": {
                "inputs": {
                    "schema": {
                       ...SomeTrigger
                },
                "kind": "Http",
                "type": "Request"
            }
        }
    },
    "parameters": {
        "$connections": {
            "value": {
                "SomeConnection": {
                    "connectionId": "SomeId",
                    "connectionName": "SomeName",
                    "id": "SomeId"
                }
            }
        }
    }
}