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
Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
Standardowa aplikacja logiki do użycia z narzędziami i procesami DevOps.
Możesz pobrać pliki artefaktów dla zasobu aplikacji logiki w warstwie Standardowa z witryny Azure Portal lub użyć projektu aplikacji logiki w warstwie Standardowa utworzonego za pomocą programu Visual Studio Code i rozszerzenia azure Logic Apps (Standard) dla programu Visual Studio Code.
Portal: pobrany plik zip zawiera standardowe pliki artefaktów aplikacji logiki, takie jak workflow.json, connections.json, host.json i local.settings.json. Zobacz Pobieranie standardowych plików artefaktów aplikacji logiki z portalu.
Visual Studio Code: potrzebujesz pustego zasobu aplikacji logiki w warstwie Standardowa w witrynie Azure Portal dla miejsca docelowego wdrożenia. Aby szybko utworzyć pusty zasób aplikacji logiki w warstwie Standardowa, zobacz Tworzenie przepływów pracy aplikacji logiki opartej na jednej dzierżawie — portal.
Jeśli nie masz istniejącej aplikacji logiki lub infrastruktury, możesz użyć połączonych przykładowych projektów aplikacji logiki w warstwie Standardowa, aby wdrożyć przykładową aplikację logiki i infrastrukturę na podstawie tego, czy chcesz użyć usługi GitHub, czy usługi Azure DevOps. Aby uzyskać więcej informacji o dołączonych przykładowych projektach i zasobach do uruchomienia przykładowej aplikacji logiki, zobacz Wdrażanie zasobów infrastruktury.
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:
Przykład usługi GitHub dla usługi Azure Logic Apps z jedną dzierżawą
Ten przykład zawiera przykładowy projekt standardowej aplikacji logiki oraz przykłady wdrożenia platformy Azure i funkcji GitHub Actions.
Przykład usługi Azure DevOps dla usługi Azure Logic Apps z jedną dzierżawą
Ten przykład zawiera przykładowy projekt standardowej aplikacji logiki oraz przykłady wdrożenia platformy Azure i usługi Azure Pipelines.
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:
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.
W witrynie Azure Portal znajdź i otwórz zasób aplikacji logiki w warstwie Standardowa.
W menu aplikacji logiki wybierz pozycję Przegląd.
Na pasku narzędzi Przegląd wybierz pozycję Pobierz zawartość aplikacji. W wyświetlonym oknie potwierdzenia wybierz pozycję Pobierz.
Po wyświetleniu monitu wybierz pozycję Zapisz jako, przejdź do żądanego folderu lokalnego, a następnie wybierz pozycję Zapisz , aby zapisać plik zip.
Wyodrębnij pliki z archiwum zip.
W programie Visual Studio Code otwórz folder zawierający rozpakowane pliki.
Po otwarciu folderu program Visual Studio Code automatycznie tworzy obszar roboczy.
Edytuj zawartość folderu, aby zawierała tylko foldery i pliki wymagane do wdrożenia przy użyciu metodyki DevOps.
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
Wypchnij plik projektu aplikacji logiki w warstwie Standardowa i artefaktu do repozytorium źródłowego, na przykład GitHub lub Azure DevOps.
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. 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.
Powiązana zawartość
Chcemy poznać Twoje doświadczenia z usługą Azure Logic Apps z jedną dzierżawą!
- W przypadku usterek lub problemów utwórz problemy w usłudze GitHub.
- W przypadku pytań, żądań, komentarzy i innych opinii użyj tego formularza opinii.