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 (Standard)

W tym przewodniku przede wszystkim pokazano, jak skonfigurować wdrożenie projektu standardowej aplikacji logicznej w 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 jednodzierżawowych aplikacji Azure Logic Apps.

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ę logiczną w warstwie Standard do działania:

Nazwa zasobu Wymagane opis
Standardowa aplikacja logiki Tak Ten zasób platformy Azure obejmuje przepływy pracy, które działają w jednokrotnego użycia usłudze Azure Logic Apps.

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 API Tak, jeśli istnieją połączenia interfejsu API Te zasoby platformy Azure definiują dowolne zarządzane połączenia API używane przez przepływy pracy do uruchamiania operacji zarządzanych łączników, 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 standardowy zasób aplikacji logicznej wymaga planu hostingu Workflow Standard, który bazuje na planie hostingu Premium dla Azure Functions.
Konto magazynu Azure Tak, zarówno w przypadku przepływów zadań 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 w modelu jednego dzierżawcy każdy zasób połączenia zarządzanego interfejsu API w przepływie pracy wymaga skojarzonych zasad dostępu. Ta polityka wymaga tożsamości aplikacji logiki, aby zapewnić właściwe 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:

Koncepcyjny diagram pokazuje zależności infrastruktury dla projektu standardowej aplikacji logiki w jedno-tenantowym modelu usługi Azure Logic Apps.

Pobieranie artefaktów standardowej aplikacji logiki z portalu

Jeśli aplikacja logiki Standard znajduje się w portalu Azure, możesz pobrać plik ZIP zawierający artefakty twojej aplikacji logiki, w tym workflow.json, connections.json, host.json i local.settings.json.

  1. W portalu Azure znajdź i otwórz swój zasób aplikacji logiki w wersji 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 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.

Buduj swój projekt

  1. Prześlij pliki projektu aplikacji w standardzie logicznym oraz pliki artefaktów do swojego repozytorium źródłowego, np. 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 pakietach 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 w pliku connections.json projektu aplikacji logiki są tworzone specjalnie do lokalnego użytku w Visual Studio Code. Zanim będzie można przenieść artefakty projektu z programu Visual Studio Code na platformę Azure, należy je zaktualizować. 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 Standard w regionie platformy Azure lub subskrypcji innej niż lokalne środowisko programistyczne, należy również pamiętać o utworzeniu tych zarządzanych połączeń interfejsu API przed wdrożeniem. 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 SQL zarządzanego w szablonie 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 Automatyzowanie wdrażania usługi Azure Logic Apps przy użyciu szablonów usługi Azure Resource Manager oraz Microsoft.Web connectionGateways.

Wydawanie na platformę Azure

Aby skonfigurować potok wydania, który wdraża na platformę Azure, wykonaj odpowiednie kroki dla GitHub, Azure DevOps lub Interfejsu wiersza polecenia platformy Azure (Azure CLI).

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 publikacyjny, 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 Ciągłym dostarczaniem za pomocą GitHub Actions.

Po wdrożeniu na platformie Azure

Każde połączenie interfejsu API ma zasady dostępu. Po zakończeniu wdrażania za pomocą zip należy otworzyć zasób standardowej aplikacji logiki w portalu Azure i utworzyć polityki dostępu dla każdego połączenia interfejsu API, aby skonfigurować uprawnienia dla wdrożonej aplikacji logiki. Wdrożenie zip nie tworzy ustawień aplikacji. Po wdrożeniu należy utworzyć ustawienia tych aplikacji na podstawie pliku local.settings.json w projekcie aplikacji logicznych.

Chcielibyśmy usłyszeć o Twoich doświadczeniach z Azure Logic Apps z jednym dzierżawcą!