Konfigurowanie wdrożenia usługi DevOps dla standardowych przepływów pracy aplikacji logiki w usłudze Azure Logic Apps z jedną dzierżawą

Dotyczy: Azure Logic Apps (w warstwie Standardowa)

W tym artykule pokazano, jak wdrożyć projekt aplikacji logiki w warstwie Standardowa w usłudze Azure Logic Apps z Visual Studio Code do infrastruktury przy użyciu narzędzi i procesów DevOps. Na podstawie tego, czy wolisz korzystać z usługi GitHub, czy azure DevOps do wdrożenia, wybierz ścieżkę i narzędzia, które najlepiej sprawdzają się w twoim scenariuszu. Możesz użyć dołączonych przykładów zawierających przykładowe projekty aplikacji logiki oraz przykłady wdrożenia platformy Azure przy użyciu usług GitHub lub Azure DevOps. Aby uzyskać więcej informacji na temat metodyki DevOps dla pojedynczej dzierżawy, zapoznaj się z omówieniem wdrażania metodyki DevOps dla usługi Azure Logic Apps z jedną dzierżawą.

Wymagania wstępne

Wdrażanie zasobów infrastruktury

Jeśli nie skonfigurowaliśmy jeszcze projektu lub infrastruktury aplikacji logiki, możesz użyć następujących przykładowych projektów, aby wdrożyć przykładową aplikację i infrastrukturę na podstawie opcji źródła i wdrażania, których chcesz użyć:

Oba przykłady obejmują następujące zasoby, których aplikacja logiki używa do uruchomienia.

Nazwa zasobu Wymagane Opis
Aplikacja logiki (Standardowa) Tak Ten zasób platformy Azure zawiera przepływy pracy uruchamiane w usłudze Azure Logic Apps z jedną dzierżawą.
Plan hostingu usługi Functions w warstwie Premium lub App Service Tak Ten zasób platformy Azure określa zasoby hostingu używane do uruchamiania aplikacji logiki, takie jak obliczenia, przetwarzanie, magazyn, sieć itd.

Ważne: W bieżącym środowisku zasób aplikacji logiki (Standardowa) wymaga planu hostingu w warstwie Standardowa przepływu pracy, który jest oparty na planie hostingu usługi Functions Premium.

Konto magazynu Azure Tak, w przypadku przepływów pracy stanowych i bezstanowych Ten zasób platformy Azure przechowuje metadane, klucze kontroli dostępu, stanu, danych wejściowych, danych wyjściowych, historii uruchamiania i innych informacji o przepływach pracy.
Application Insights Opcjonalne Ten zasób platformy Azure zapewnia możliwości monitorowania przepływów pracy.
Połączenia interfejsu API Opcjonalnie, jeśli żaden z nich nie istnieje Te zasoby platformy Azure definiują wszystkie zarządzane połączenia interfejsu API używane przez przepływy pracy do uruchamiania operacji łącznika zarządzanego, takich jak Office 365, SharePoint itd.

Ważne: w projekcie aplikacji logiki plik connections.json zawiera metadane, punkty końcowe i klucze dla wszystkich zarządzanych połączeń interfejsu API i funkcji platformy Azure używanych przez przepływy pracy. Aby używać różnych połączeń i funkcji w każdym środowisku, upewnij się, że sparametryzujesz plik connections.json i zaktualizuj punkty końcowe.

Aby uzyskać więcej informacji, zapoznaj się z zasobami połączenia interfejsu API i zasadami dostępu.

Szablon usługi Azure Resource Manager (ARM) Opcjonalne Ten zasób platformy Azure definiuje wdrożenie infrastruktury bazowej, które można ponownie użyć lub wyeksportować.

Zasoby połączenia interfejsu API i zasady dostępu

W usłudze Azure Logic Apps z jedną dzierżawą każdy zasób połączenia zarządzanego lub interfejsu API w przepływach pracy wymaga skojarzonych zasad dostępu. Te zasady wymagają tożsamości aplikacji logiki, aby zapewnić prawidłowe uprawnienia dostępu do infrastruktury łącznika zarządzanego. Dołączone przykładowe projekty obejmują szablon usługi ARM zawierający wszystkie niezbędne zasoby infrastruktury, w tym te zasady dostępu.

Na poniższym diagramie przedstawiono zależności między projektem aplikacji logiki a zasobami infrastruktury:

Diagram koncepcyjny przedstawiający zależności infrastruktury dla projektu aplikacji logiki w modelu usługi Azure Logic Apps z jedną dzierżawą.

Wdrażanie zasobów aplikacji logiki (wdrażanie zip)

Po wypchnięciu projektu aplikacji logiki do repozytorium źródłowego możesz skonfigurować potoki kompilacji i wydania w obrębie platformy Azure lub poza nim, które wdrażają aplikacje logiki w infrastrukturze.

Kompilowanie projektu

Aby skonfigurować potok kompilacji na podstawie typu projektu aplikacji logiki, wykonaj odpowiednie akcje w poniższej tabeli:

Project type (Typ projektu) Opis i kroki
Oparte na nuget Struktura projektu oparta na nuGet jest oparta na .NET Framework. Aby skompilować te projekty, wykonaj kroki kompilacji dla platformy .NET Standard. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą tworzenia pakietu NuGet przy użyciu programu MSBuild.
Oparte na pakiecie Projekt oparty na pakiecie rozszerzeń nie jest specyficzny dla języka i nie wymaga żadnych kroków kompilacji specyficznych dla języka. Możesz użyć dowolnej metody do spakowania plików projektu.

Ważne: upewnij się, że plik .zip zawiera rzeczywiste artefakty kompilacji, w tym wszystkie foldery przepływu pracy, pliki konfiguracji, takie jak host.json, connections.json i inne powiązane pliki.

Przed wydaniem na platformę Azure

Połączenia interfejsu API zarządzanego wewnątrz pliku connections.json projektu aplikacji logiki są tworzone specjalnie do użytku lokalnego w Visual Studio Code. Aby można było zwolnić artefakty projektu z Visual Studio Code na platformę Azure, należy zaktualizować te artefakty. Aby korzystać z zarządzanych połączeń interfejsu API na platformie Azure, należy zaktualizować ich metody uwierzytelniania, aby były w poprawnym formacie do użycia na platformie Azure.

Aktualizowanie typu uwierzytelniania

Dla każdego zarządzanego połączenia interfejsu API korzystającego z uwierzytelniania należy zaktualizować obiekt uwierzytelniania z lokalnego formatu w Visual Studio Code do formatu Azure Portal, jak pokazano odpowiednio w pierwszych i drugich przykładach kodu:

format Visual Studio Code

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "Raw",
         "scheme": "Key",
         "parameter": "@appsetting('sql-connectionKey')"
      }
   }
}

format Azure Portal

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "ManagedServiceIdentity",
      }
   }
}

Tworzenie połączeń interfejsu API zgodnie z potrzebami

Jeśli wdrażasz przepływ pracy aplikacji logiki w regionie platformy Azure lub subskrypcji innej niż lokalne środowisko deweloperskie, przed wdrożeniem musisz również upewnić się, że te zarządzane połączenia interfejsu API zostały utworzone. Wdrożenie szablonu usługi Azure Resource Manager (szablon usługi ARM) to najprostszy sposób tworzenia zarządzanych połączeń interfejsu API.

W poniższym przykładzie przedstawiono definicję zasobu połączenia interfejsu API zarządzanego SQL w szablonie usługi ARM:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Aby znaleźć wartości, których potrzebujesz użyć w obiekcie properties do ukończenia definicji zasobu połączenia, możesz użyć następującego interfejsu API dla określonego łącznika:

GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01

W odpowiedzi znajdź obiekt connectionParameters , który zawiera wszystkie informacje niezbędne do ukończenia definicji zasobu dla tego konkretnego łącznika. W poniższym przykładzie przedstawiono przykładową definicję zasobu dla połączenia zarządzanego SQL:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows",
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Alternatywnie możesz przechwycić i przejrzeć ślad sieci podczas tworzenia połączenia przy użyciu projektanta przepływu pracy w usłudze Azure Logic Apps. PUT Znajdź wywołanie wysyłane do zarządzanego interfejsu API łącznika zgodnie z wcześniejszym opisem i przejrzyj treść żądania, aby uzyskać wszystkie niezbędne informacje.

Wydanie na platformę Azure

Aby skonfigurować potok wydania, który jest wdrażany na platformie Azure, wykonaj skojarzone kroki dla usługi GitHub, usługi Azure DevOps lub interfejsu wiersza polecenia platformy Azure.

Uwaga

Usługa Azure Logic Apps obecnie nie obsługuje miejsc wdrożenia platformy Azure.

W przypadku wdrożeń usługi GitHub można wdrożyć aplikację logiki przy użyciu GitHub Actions, na przykład GitHub Actions w Azure Functions. Ta akcja wymaga przekazania następujących informacji:

  • Nazwa aplikacji logiki do użycia do wdrożenia
  • Plik zip zawierający rzeczywiste artefakty kompilacji, w tym wszystkie foldery przepływu pracy, pliki konfiguracji, takie jak host.json, connections.json i inne powiązane pliki.
  • Profil publikowania, który jest używany do uwierzytelniania
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją ciągłego dostarczania przy użyciu akcji usługi GitHub .

Po wydaniu na platformę Azure

Każde połączenie interfejsu API ma zasady dostępu. Po zakończeniu wdrażania zip należy otworzyć zasób aplikacji logiki w Azure Portal i utworzyć zasady dostępu dla każdego połączenia interfejsu API w celu skonfigurowania uprawnień dla wdrożonej aplikacji logiki. Wdrożenie zip nie powoduje utworzenia ustawień aplikacji. Dlatego po wdrożeniu należy utworzyć te ustawienia aplikacji na podstawie pliku local.settings.json w lokalnym projekcie Visual Studio Code.

Następne kroki

Chcielibyśmy usłyszeć o doświadczeniach z usługą Azure Logic Apps z jedną dzierżawą!