Udostępnij za pośrednictwem


Konfigurowanie wdrożenia usługi DevOps dla aplikacji logiki w warstwie Standardowa w usłudze Azure Logic Apps z jedną dzierżawą

Dotyczy: Azure Logic Apps (Standardowa)

W tym przewodniku przedstawiono przede wszystkim sposób konfigurowania wdrożenia dla projektu standardowej aplikacji logiki w programie Visual Studio Code do infrastruktury przy użyciu narzędzi i procesów DevOps. Jeśli zamiast tego aplikacja logiki Standardowa istnieje w witrynie Azure Portal, możesz pobrać pliki artefaktów aplikacji logiki do użycia z wdrożeniem metodyki DevOps. Na podstawie tego, czy chcesz użyć usługi GitHub, czy usługi Azure DevOps, wybierz ścieżkę i narzędzia, które najlepiej sprawdzają się w scenariuszu wdrażania.

Jeśli nie masz aplikacji logiki w warstwie Standardowa, nadal możesz postępować zgodnie z tym przewodnikiem, korzystając z połączonych przykładowych projektów aplikacji logiki w warstwie Standardowa oraz przykładów wdrażania na platformie Azure za pośrednictwem usługi GitHub lub Usługi Azure DevOps. Aby uzyskać więcej informacji, zapoznaj się z omówieniem wdrażania usługi DevOps dla usługi Azure Logic Apps z jedną dzierżawą.

Wymagania wstępne

Wdrażanie zasobów infrastruktury

Aby wypróbować środowisko wdrażania metodyki DevOps bez wcześniejszej standardowej aplikacji logiki lub konfiguracji infrastruktury, użyj następujących przykładowych projektów, aby skonfigurować wdrożenie dla przykładowej standardowej aplikacji logiki i infrastruktury opartej na tym, czy chcesz użyć usługi GitHub, czy usługi Azure DevOps:

Oba przykłady obejmują następujące zasoby używane przez aplikację logiki w warstwie Standardowa do uruchomienia:

Nazwa zasobu Wymagania opis
Standardowa aplikacja logiki Tak Ten zasób platformy Azure zawiera przepływy pracy uruchamiane w usłudze Azure Logic Apps z jedną dzierżawą.

Ważne: w projekcie aplikacji logiki każdy przepływ pracy ma plik workflow.json zawierający definicję przepływu pracy, która zawiera definicje wyzwalacza i akcji.
Połączenia interfejsu API Tak, jeśli istnieją połączenia interfejsu API 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.
Plan hostingu usługi Functions 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 standardowej aplikacji logiki wymaga planu hostingu w warstwie Standardowa przepływu pracy, który jest oparty na planie hostingu usługi Azure Functions Premium.
Konto magazynu Azure Tak, zarówno w przypadku przepływów pracy stanowych, jak 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.
Szczegółowe dane dotyczące aplikacji Opcjonalnie Ten zasób platformy Azure zapewnia możliwości monitorowania przepływów pracy.
Szablon usługi Azure Resource Manager (ARM) Opcjonalnie 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 interfejsu API zarządzanego w przepływie 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 przykład na poniższym diagramie przedstawiono zależności między projektem aplikacji logiki w warstwie Standardowa a zasobami infrastruktury:

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

Pobieranie artefaktów standardowej aplikacji logiki z portalu

Jeśli aplikacja logiki w warstwie Standardowa znajduje się w witrynie Azure Portal, możesz pobrać plik zip zawierający pliki artefaktów aplikacji logiki, w tym workflow.json, connections.json, host.json i local.settings.json.

  1. W witrynie Azure Portal znajdź i otwórz zasób aplikacji logiki w warstwie Standardowa.

  2. W menu aplikacji logiki wybierz pozycję Przegląd.

  3. Na pasku narzędzi Przegląd wybierz pozycję Pobierz zawartość aplikacji. W wyświetlonym oknie potwierdzenia wybierz pozycję Pobierz.

  4. Po wyświetleniu monitu wybierz pozycję Zapisz jako, przejdź do żądanego folderu lokalnego, a następnie wybierz pozycję Zapisz , aby zapisać plik zip.

  5. Wyodrębnij pliki z archiwum zip.

  6. W programie Visual Studio Code otwórz folder zawierający rozpakowane pliki.

    Po otwarciu folderu program Visual Studio Code automatycznie tworzy obszar roboczy.

  7. Edytuj zawartość folderu, aby zawierała tylko foldery i pliki wymagane do wdrożenia przy użyciu metodyki DevOps.

  8. Po zakończeniu zapisz zmiany.

Kompilowanie i wdrażanie aplikacji logiki (wdrażanie zip)

Potoki kompilacji i wydania można skonfigurować wewnątrz platformy Azure lub poza platformą Azure, które wdrażają standardowe aplikacje logiki w infrastrukturze.

Kompilowanie projektu

  1. Wypchnij plik projektu aplikacji logiki w warstwie Standardowa i artefaktu do repozytorium źródłowego, na przykład GitHub lub Azure DevOps.

  2. Skonfiguruj potok kompilacji na podstawie typu projektu aplikacji logiki, wykonując następujące odpowiednie akcje:

    Typ projektu Opis i kroki
    Oparte na nuget Struktura projektu oparta na oprogramowaniu NuGet jest oparta na programie .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 rozszerzenia nie jest specyficzny dla języka i nie wymaga żadnych kroków kompilacji specyficznych dla języka.
  3. Spakuj pliki projektu przy użyciu dowolnej metody.

    Ważne

    Upewnij się, że plik zip zawiera rzeczywiste artefakty kompilacji projektu na poziomie głównym, w tym wszystkie foldery przepływu pracy, pliki konfiguracji, takie jak host.json, connections.json, local.settings.json i inne powiązane pliki. Nie dodawaj żadnych dodatkowych folderów ani nie umieszczaj żadnych artefaktów w folderach, które jeszcze nie istnieją w strukturze projektu.

    Na przykład poniższa lista przedstawia przykładową strukturę plików MyBuildArtifacts.zip :

    MyStatefulWorkflow1-Folder
    MyStatefulWorkflow2-Folder
    connections.json
    host.json
    local.settings.json
    

Przed wydaniem na platformę Azure

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

Aktualizowanie typu uwierzytelniania

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

Format programu Visual Studio Code

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

Format witryny Azure Portal

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
         },
         "connection": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
         },
         "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 aplikację logiki w warstwie Standardowa w regionie lub subskrypcji platformy Azure innej niż lokalne środowisko programistyczne, przed wdrożeniem należy również pamiętać o utworzeniu tych zarządzanych połączeń interfejsu API. Wdrażanie szablonu usługi Azure Resource Manager (szablonu usługi ARM) to najprostszy sposób tworzenia połączeń zarządzanych 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Aby znaleźć wymagane wartości dla properties obiektu, aby można było ukończyć definicję zasobu połączenia, użyj 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ź connectionParameters obiekt zawierający 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 interfejsu API łącznika zarządzanego zgodnie z wcześniejszym opisem i przejrzyj treść żądania, aby uzyskać wszystkie niezbędne informacje.

Definicja zasobu lokalnej bramy danych

Jeśli połączenie korzysta z lokalnego zasobu bramy danych, ta definicja zasobu istnieje oddzielnie od definicji zasobu łącznika. Aby wyświetlić definicję zasobów bramy danych, zobacz Automate deployment for Azure Logic Apps by using Azure Resource Manager templates and Microsoft.Web connectionGateways (Automatyzowanie wdrażania usługi Azure Logic Apps przy użyciu szablonów usługi Azure Resource Manager i biblioteki Microsoft.Web connectionGateways).

Wydawanie na platformę Azure

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

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

  • Nazwa aplikacji logiki do użycia na potrzeby wdrożenia
  • Plik zip zawierający rzeczywiste artefakty kompilacji, w tym wszystkie foldery przepływu pracy, pliki konfiguracji, takie jak host.json, connections.json, local.settings.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 tematem Ciągłe dostarczanie przy użyciu akcji usługi GitHub.

Po wdrożeniu na platformie Azure

Każde połączenie interfejsu API ma zasady dostępu. Po zakończeniu wdrażania zip należy otworzyć zasób standardowej aplikacji logiki w witrynie 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 tworzy ustawień aplikacji. Po wdrożeniu należy utworzyć te ustawienia aplikacji na podstawie pliku local.settings.json w projekcie aplikacji logiki.

Chcemy poznać Twoje doświadczenia z usługą Azure Logic Apps z jedną dzierżawą!