Почему новое соединение добавляется в мой JSON-файл при выборе существующего в конструкторе приложений логики в Visual Studio? - PullRequest
0 голосов
/ 11 февраля 2019

Мне не удалось найти каких-либо статей, касающихся этого поведения.

Я использую Visual Studio 2017 и дизайнер приложений логики.У меня есть конфигурация, которая отлично работает при развертывании, используя файл параметров.Когда я открываю свой JSON в конструкторе, он говорит « недопустимое соединение », и я получаю возможность выбрать существующее или новое соединение.Если я выбираю существующее, действие снова включается и работает в студии.

Но в JSON-файле, с другой стороны, создается новое соединение, которое в точности совпадает с предыдущим, но вместо этого он называется (в данном случае) sftp_2 - который использует действие.Я пытался изменить все ссылки на старое соединение, но оно не работает - оно выдает мне ту же ошибку.

Это сработало, когда я ушел с работы в пятницу, но не после того, как я снова открыл Visual Studio сегодня.Нужно ли сначала как-то активировать / заново открыть старое соединение?

Соединение выглядит так:

{
  "type": "MICROSOFT.WEB/CONNECTIONS",
  "apiVersion": "2016-06-01",
  "name": "[parameters('sftp_1_Connection_Name')]",
  "location": "[parameters('logicAppLocation')]",
  "properties": {
    "api": {
      "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sftp')]"
    },
    "displayName": "[parameters('sftp_1_Connection_DisplayName')]",
    "parameterValues": {
      "hostName": "[parameters('sftp_1_hostName')]",
      "userName": "[parameters('sftp_1_userName')]",
      "password": "[parameters('sftp_1_password')]",
      "sshPrivateKey": "[parameters('sftp_1_sshPrivateKey')]",
      "sshPrivateKeyPassphrase": "[parameters('sftp_1_sshPrivateKeyPassphrase')]",
      "portNumber": "[parameters('sftp_1_portNumber')]",
      "giveUpSecurityAndAcceptAnySshHostKey": "[parameters('sftp_1_giveUpSecurityAndAcceptAnySshHostKey')]",
      "sshHostKeyFingerprint": "[parameters('sftp_1_sshHostKeyFingerprint')]",
      "disableUploadFilesResumeCapability": "[parameters('sftp_1_disableUploadFilesResumeCapability')]"
    }
  }
},

И вот одно из действий:

"Get_file_content": {
                      "type": "ApiConnection",
                      "inputs": {
                        "host": {
                          "connection": {
                            "name": "@parameters('$connections')['sftp_1']['connectionId']"
                          }
                        },
                        "method": "get",
                        "path": "/datasets/default/files/@{encodeURIComponent(encodeURIComponent(parameters('sftp_1_filepath'),items('For_each')?['Name']))}/content",
                        "queries": {
                          "inferContentType": true
                        }
                      },
                      "runAfter": {}
                    }

И, наконец, массив соединений:

"$connections": {
        "value": {
          "sftp_1": {
            "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sftp')]",
            "connectionId": "[resourceId('Microsoft.Web/connections', parameters('sftp_1_Connection_Name'))]",
            "connectionName": "[parameters('sftp_1_Connection_Name')]"
          },
          "filesystem": {
            "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'filesystem')]",
            "connectionId": "[resourceId('Microsoft.Web/connections', parameters('filesystem_1_Connection_Name'))]",
            "connectionName": "[parameters('filesystem_1_Connection_Name')]"
          }
        }
      }

Это поток логических приложений https://i.imgur.com/UIitHNP.png

1 Ответ

0 голосов
/ 22 июня 2019

Причина этого заключается в том, что Visual Studio Logic Apps Designer не проверяет, используется ли это соединение, используемое этим соединителем, в другом месте в приложении логики или в Azure.Таким образом, в случае этого, теперь устаревшее API-соединение все еще используется в Azure, где вместо этого создается дополнительное API-соединение (в данном случае sftp_2).

Дизайнер помогает вам в обнаружении «Динамического содержимого»,Однако для этого нужно создать API-соединение даже на этапе разработки, а не на этапе развертывания.

Как перезапись, это соединение в Visual Studio Designer будет означать, что при сохранении оно будет перезаписано в Azure.Поскольку при работе в Visual Studio вы уже работаете с объектами, развернутыми в Azure, такими как соединения.

Если это происходит, я обычно использую Ctrl + H, заменяю новое соединение на имя старого и удаляюлюбая ссылка на старый - громоздкая работа.

Что касается l - ''''''--------- '' '' '' '' '' ''становится чем-то вроде яйца и проблемы с курицей.Вы пытаетесь установить соглашение об именах, но API-соединение создается до того, как вы можете установить соглашение об именах, если вы выберете дизайнера.Если вы работаете в JSON, это возможно сделать с параметрами, но дизайнер будет выглядеть так, как будто он не работает.Параметр может быть построен таким образом, что он только изменяет имя соединения.

Здесь соединитель имеет имя blob-3221, но мне нужны параметры с именами CustomVariableName и CustomName.Я выделил, где в коде появляется Custom.Поэтому здесь говорится, что azureblob_1_Connection_Name имеет значение blob-3221, а отображаемое имя - blob-test,

Deployment Parameters

, которые представляют собой два значения, которые объявлены, но не используются:

Parameters in arm

При развертывании получает следующие значения: Working Logic App connection

Значения заполнителя, такие как blob-3221удаляются и вводится пользовательское префиксное имя.Created connections

Файл параметров для имени без префикса.Parameter file for name

...