Tworzenie i wdrażanie przepływów pracy aplikacji logiki opartej na jednej dzierżawie za pomocą usługi Logic Apps z obsługą usługi Azure Arc (wersja zapoznawcza)
Uwaga
Ta funkcja jest dostępna w wersji zapoznawczej i podlega dodatkowym warunkom użytkowania wersji zapoznawczej platformy Microsoft Azure.
Usługa Logic Apps z obsługą usługi Azure Arc umożliwia tworzenie i wdrażanie przepływów pracy aplikacji logiki opartej na jednej dzierżawie w infrastrukturze Kubernetes, którą obsługujesz i którymi zarządzasz. Aplikacje logiki działają w niestandardowej lokalizacji zamapowanej na klaster Kubernetes z obsługą usługi Azure Arc, w którym zainstalowano i włączono pakiet rozszerzeń platformy aplikacja systemu Azure Service.
Na przykład ten klaster może być usługą Azure Kubernetes Service, bez systemu operacyjnego Kubernetes lub inną konfiguracją. Pakiet rozszerzeń umożliwia uruchamianie usług platformy, takich jak Azure Logic Apps, aplikacja systemu Azure Service i Azure Functions w klastrze Kubernetes.
Aby uzyskać więcej informacji, zapoznaj się z następującą dokumentacją:
- Co to jest usługa Logic Apps z obsługą usługi Azure Arc?
- Pojedyncza dzierżawa a wielodostępna w usłudze Azure Logic Apps
- Omówienie usługi Azure Arc
- Omówienie usługi Azure Kubernetes Service
- Co to jest platforma Kubernetes z obsługą usługi Azure Arc?
- Lokalizacje niestandardowe na platformie Kubernetes z obsługą usługi Azure Arc
- App Service, Functions i Logic Apps w usłudze Azure Arc (wersja zapoznawcza)
- Konfigurowanie klastra Kubernetes z włączoną obsługą usługi Azure Arc do uruchamiania usług App Service, Functions i Logic Apps (wersja zapoznawcza)
Wymagania wstępne
W tej sekcji opisano typowe wymagania wstępne we wszystkich podejściach i narzędziach, których można użyć do tworzenia i wdrażania przepływów pracy aplikacji logiki. Wymagania wstępne specyficzne dla narzędzi są wyświetlane wraz z odpowiednimi krokami.
Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
Środowisko Kubernetes z klastrem Kubernetes z włączoną usługą Azure Arc i lokalizacją niestandardową, w której można hostować i uruchamiać usługi Azure Logic Apps, aplikacja systemu Azure Service i Azure Functions.
Ważne
Upewnij się, że używasz tej samej lokalizacji zasobów dla środowiska Kubernetes, lokalizacji niestandardowej i aplikacji logiki.
Podczas tworzenia rozszerzenia pakietu usługi App Service w klastrze Kubernetes można zmienić domyślne zachowanie skalowania na potrzeby uruchamiania przepływów pracy aplikacji logiki. Podczas tworzenia rozszerzenia za pomocą polecenia interfejsu wiersza polecenia
az k8s-extension create
platformy Azure pamiętaj, aby uwzględnić ustawienie konfiguracji:keda.enabled=true
az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"
Aby uzyskać więcej informacji, zapoznaj się z następującą dokumentacją:
- App Service, Functions i Logic Apps w usłudze Azure Arc (wersja zapoznawcza)
- Rozszerzenia klastra na platformie Kubernetes z obsługą usługi Azure Arc
- Konfigurowanie klastra Kubernetes z włączoną obsługą usługi Azure Arc do uruchamiania usług App Service, Functions i Logic Apps (wersja zapoznawcza)
- Zmienianie domyślnego zachowania skalowania
Własna tożsamość firmy Microsoft Entra
Jeśli przepływy pracy muszą używać dowolnych połączeń hostowanych na platformie Azure, takich jak Office 365 Outlook lub Azure Storage, aplikacja logiki musi używać tożsamości entra firmy Microsoft do uwierzytelniania. Usługa Logic Apps z obsługą usługi Azure Arc może działać w dowolnej infrastrukturze, ale wymaga tożsamości, która ma uprawnienia do korzystania z połączeń hostowanych na platformie Azure. Aby skonfigurować tę tożsamość, utwórz rejestrację aplikacji w identyfikatorze Entra firmy Microsoft używanym przez aplikację logiki jako wymaganą tożsamość.
Uwaga
Obsługa tożsamości zarządzanej jest obecnie niedostępna dla usługi Logic Apps z obsługą usługi Azure Arc.
Aby utworzyć rejestrację aplikacji Firmy Microsoft Entra przy użyciu interfejsu wiersza polecenia platformy Azure, wykonaj następujące kroki:
Utwórz rejestrację aplikacji przy użyciu
az ad sp create
polecenia .Aby przejrzeć wszystkie szczegóły, uruchom
az ad sp show
polecenie .Z danych wyjściowych obu poleceń znajdź i zapisz identyfikator klienta, identyfikator obiektu, identyfikator dzierżawy i wartości wpisów tajnych klienta, które należy zachować do późniejszego użycia.
Aby utworzyć rejestrację aplikacji Microsoft Entra przy użyciu witryny Azure Portal, wykonaj następujące kroki:
Utwórz nową rejestrację aplikacji Microsoft Entra przy użyciu witryny Azure Portal.
Po zakończeniu tworzenia znajdź nową rejestrację aplikacji w portalu.
W menu rejestracji wybierz pozycję Przegląd i zapisz wartości identyfikatora klienta, identyfikatora dzierżawy i klucza tajnego klienta.
Aby znaleźć identyfikator obiektu, obok pola Aplikacja zarządzana w katalogu lokalnym wybierz nazwę rejestracji aplikacji. W widoku właściwości skopiuj identyfikator obiektu.
Tworzenie i wdrażanie aplikacji logiki
Na podstawie tego, czy chcesz użyć interfejsu wiersza polecenia platformy Azure, czy programu Visual Studio Code, wybierz kartę dopasowania, aby przejrzeć określone wymagania wstępne i kroki.
Przed rozpoczęciem musisz mieć następujące elementy:
Najnowsze rozszerzenie interfejsu wiersza polecenia platformy Azure zainstalowane na komputerze lokalnym.
Jeśli nie masz tego rozszerzenia, zapoznaj się z przewodnikiem instalacji systemu operacyjnego lub platformy.
Jeśli nie masz pewności, że masz najnowszą wersję, wykonaj kroki, aby sprawdzić środowisko i wersję interfejsu wiersza polecenia.
Rozszerzenie usługi Azure Logic Apps (Standardowa) w wersji zapoznawczej dla interfejsu wiersza polecenia platformy Azure.
Mimo że usługa Azure Logic Apps z jedną dzierżawą jest ogólnie dostępna, rozszerzenie usługi Azure Logic Apps jest nadal dostępne w wersji zapoznawczej.
Grupa zasobów platformy Azure, w której ma zostać utworzona aplikacja logiki.
Jeśli nie masz tej grupy zasobów, wykonaj kroki tworzenia grupy zasobów.
Konto usługi Azure Storage do użycia z aplikacją logiki na potrzeby przechowywania danych i historii uruchamiania.
Jeśli nie masz tego konta magazynu, możesz utworzyć to konto podczas tworzenia aplikacji logiki lub wykonać kroki tworzenia konta magazynu.
Sprawdzanie wersji środowiska i interfejsu wiersza polecenia
Zaloguj się w witrynie Azure Portal. Sprawdź, czy subskrypcja jest aktywna, uruchamiając następujące polecenie:
az login
Sprawdź wersję interfejsu wiersza polecenia platformy Azure w terminalu lub oknie polecenia, uruchamiając następujące polecenie:
az --version
Aby uzyskać najnowszą wersję, zobacz najnowsze informacje o wersji.
Jeśli nie masz najnowszej wersji, zaktualizuj instalację, postępując zgodnie z przewodnikiem instalacji systemu operacyjnego lub platformy.
Instalowanie rozszerzenia usługi Azure Logic Apps (Standard) dla interfejsu wiersza polecenia platformy Azure
Zainstaluj jednodostępne rozszerzenie usługi Azure Logic Apps (Standard) dla interfejsu wiersza polecenia platformy Azure w wersji zapoznawczej , uruchamiając następujące polecenie:
az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"
Utwórz grupę zasobów
Jeśli nie masz jeszcze grupy zasobów dla aplikacji logiki, utwórz grupę, uruchamiając polecenie az group create
. Jeśli nie ustawiono już domyślnej subskrypcji dla konta platformy Azure, pamiętaj, aby użyć parametru --subscription
z nazwą subskrypcji lub identyfikatorem. W przeciwnym razie nie trzeba używać parametru --subscription
.
Napiwek
Aby ustawić subskrypcję domyślną, uruchom następujące polecenie i zastąp MySubscription
ciąg nazwą subskrypcji lub identyfikatorem.
az account set --subscription MySubscription
Na przykład następujące polecenie tworzy grupę zasobów o nazwie MyResourceGroupName
przy użyciu subskrypcji platformy Azure o nazwie MySubscription
w lokalizacji eastus
:
az group create --name MyResourceGroupName
--subscription MySubscription
--location eastus
Jeśli grupa zasobów została pomyślnie utworzona, dane wyjściowe będą wyświetlane provisioningState
jako Succeeded
:
<...>
"name": "testResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
<...>
Tworzenie aplikacji logicznej
Aby utworzyć aplikację logiki z obsługą usługi Azure Arc, uruchom polecenie , az logicapp create
z następującymi wymaganymi parametrami. Lokalizacje zasobów aplikacji logiki, lokalizacji niestandardowej i środowiska Kubernetes muszą być takie same.
Parametry | opis |
---|---|
--name -n |
Unikatowa nazwa aplikacji logiki |
--resource-group -g |
Nazwa grupy zasobów, w której chcesz utworzyć aplikację logiki. Jeśli nie masz go do użycia, utwórz grupę zasobów. |
--storage-account -s |
Konto magazynu do użycia z aplikacją logiki. W przypadku kont magazynu w tej samej grupie zasobów użyj wartości ciągu. W przypadku kont magazynu w innej grupie zasobów użyj identyfikatora zasobu. |
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
Aby utworzyć aplikację logiki z obsługą usługi Azure Arc przy użyciu prywatnego obrazu usługi Azure Container Registry (ACR), uruchom polecenie , az logicapp create
z następującymi wymaganymi parametrami:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
--deployment-container-image-name myacr.azurecr.io/myimage:tag
--docker-registry-server-password MyPassword
--docker-registry-server-user MyUsername
Pokaż szczegóły aplikacji logiki
Aby wyświetlić szczegółowe informacje o aplikacji logiki z obsługą usługi Azure Arc, uruchom polecenie , az logicapp show
z następującymi wymaganymi parametrami:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Wdrażanie aplikacji logiki
Aby wdrożyć aplikację logiki z obsługą usługi Azure Arc przy użyciu narzędzia kudu zip usługi aplikacja systemu Azure Service, uruchom polecenie , az logicapp deployment source config-zip
z następującymi wymaganymi parametrami:
Ważne
Upewnij się, że plik zip zawiera artefakty projektu na poziomie głównym. Te artefakty obejmują wszystkie foldery przepływu pracy, pliki konfiguracji, takie jak host.json, connections.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 ta lista przedstawia przykładową strukturę plików MyBuildArtifacts.zip:
MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--src MyBuildArtifact.zip
Uruchamianie aplikacji logiki
Aby uruchomić aplikację logiki z obsługą usługi Azure Arc, uruchom polecenie , az logicapp start
z następującymi wymaganymi parametrami:
az logicapp start --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Zatrzymywanie aplikacji logiki
Aby zatrzymać aplikację logiki z obsługą usługi Azure Arc, uruchom polecenie , az logicapp stop
z następującymi wymaganymi parametrami:
az logicapp stop --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Ponowne uruchamianie aplikacji logiki
Aby ponownie uruchomić aplikację logiki z obsługą usługi Azure Arc, uruchom polecenie , az logicapp restart
z następującymi wymaganymi parametrami:
az logicapp restart --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Usuwanie aplikacji logiki
Aby usunąć aplikację logiki z obsługą usługi Azure Arc, uruchom polecenie , az logicapp delete
z następującymi wymaganymi parametrami:
az logicapp delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Konfigurowanie uwierzytelniania połączeń
Obecnie klastry Kubernetes z obsługą usługi Azure Arc nie obsługują używania tożsamości zarządzanej aplikacji logiki do uwierzytelniania zarządzanych połączeń interfejsu API. Te połączenia hostowane na platformie Azure i zarządzane są tworzone podczas korzystania z łączników zarządzanych w przepływach pracy.
Zamiast tego musisz utworzyć własną rejestrację aplikacji w identyfikatorze Entra firmy Microsoft. Następnie możesz użyć tej rejestracji aplikacji jako tożsamości dla aplikacji logiki wdrożonych i uruchomionych w usłudze Logic Apps z obsługą usługi Azure Arc. Aby uzyskać więcej informacji, zapoznaj się z wymaganiami wstępnymi najwyższego poziomu.
Z poziomu rejestracji aplikacji potrzebny jest identyfikator klienta, identyfikator obiektu, identyfikator dzierżawy i klucz tajny klienta. Jeśli używasz programu Visual Studio Code do wdrożenia, masz wbudowane środowisko konfigurowania aplikacji logiki przy użyciu tożsamości firmy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Tworzenie i wdrażanie przepływów pracy aplikacji logiki — Visual Studio Code.
Jeśli jednak używasz programu Visual Studio Code do programowania, ale do wdrożenia używasz interfejsu wiersza polecenia platformy Azure lub zautomatyzowanych potoków, wykonaj następujące kroki.
Konfigurowanie ustawień połączenia i aplikacji w projekcie
W pliku connections.json projektu aplikacji logiki znajdź
authentication
obiekt dla połączenia zarządzanego. Zastąp zawartość tego obiektu informacjami dotyczącymi rejestracji aplikacji, które wcześniej wygenerowano w wymaganiach wstępnych najwyższego poziomu:"authentication": { "type": "ActiveDirectoryOAuth", "audience": "https://management.core.windows.net/", "credentialType": "Secret", "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')", "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')", "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')" }
W pliku local.settings.json projektu aplikacji logiki dodaj identyfikator klienta, identyfikator obiektu, identyfikator dzierżawy i klucz tajny klienta. Po wdrożeniu te ustawienia stają się ustawieniami aplikacji logiki.
{ "IsEncrypted": false, "Values": { <...> "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>", "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID", "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>", "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>" } }
Ważne
W przypadku scenariuszy produkcyjnych lub środowisk upewnij się, że chronisz i zabezpieczasz takie wpisy tajne i informacje poufne, na przykład przy użyciu magazynu kluczy.
Dodawanie zasad dostępu
W usłudze Azure Logic Apps z jedną dzierżawą każda aplikacja logiki ma tożsamość, która ma przyznane uprawnienia przez zasady dostępu do korzystania z połączeń hostowanych na platformie Azure i zarządzanych. Te zasady dostępu można skonfigurować przy użyciu witryny Azure Portal lub wdrożeń infrastruktury.
Szablon ARM
W szablonie usługi Azure Resource Manager (szablon arm) dołącz następującą definicję zasobów dla każdego zarządzanego połączenia interfejsu API i podaj następujące informacje:
Parametr | Opis |
---|---|
<nazwa połączenia> | Nazwa zarządzanego połączenia interfejsu API, na przykład office365 |
<object-ID> | Identyfikator obiektu tożsamości firmy Microsoft Entra, wcześniej zapisany z rejestracji aplikacji |
<identyfikator dzierżawy> | Identyfikator dzierżawy tożsamości firmy Microsoft Entra, wcześniej zapisany z rejestracji aplikacji |
{
"type": "Microsoft.Web/connections/accessPolicies",
"apiVersion": "2016-06-01",
"name": "[concat('<connection-name>'),'/','<object-ID>')]",
"location": "<location>",
"dependsOn": [
"[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
],
"properties": {
"principal": {
"type": "ActiveDirectory",
"identity": {
"objectId": "<object-ID>",
"tenantId": "<tenant-ID>"
}
}
}
}
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją Microsoft.Web/connections/accesspolicies (szablon usługi ARM).
Azure Portal
W tym zadaniu użyj wcześniej zapisanego identyfikatora klienta jako identyfikatora aplikacji.
W witrynie Azure Portal znajdź i otwórz aplikację logiki. W menu aplikacji logiki w obszarze Przepływy pracy wybierz pozycję Połączenia, które wyświetla listę wszystkich połączeń w przepływach pracy dla zasobu aplikacji logiki.
W obszarze Połączenia interfejsu API wybierz połączenie, które znajduje się
office365
w tym przykładzie.W menu połączenia w obszarze Ustawienia wybierz pozycję Zasady>dostępu Dodaj.
W okienku Dodawanie zasad dostępu w polu wyszukiwania znajdź i wybierz wcześniej zapisany identyfikator klienta.
Po zakończeniu wybierz pozycję Dodaj.
Powtórz te kroki dla każdego połączenia hostowanego na platformie Azure w aplikacji logiki.
Automatyzowanie wdrażania metodyki DevOps
Aby utworzyć i wdrożyć aplikacje logiki z obsługą usługi Azure Arc, możesz użyć tych samych potoków i procesów co w przypadku aplikacji logiki opartych na jednej dzierżawie. Aby zautomatyzować wdrożenia infrastruktury przy użyciu potoków dla metodyki DevOps, wprowadź następujące zmiany na poziomie infrastruktury zarówno dla wdrożeń niekontenerowych, jak i wdrożeń kontenerów.
Wdrożenie standardowe (noncontainer)
Jeśli używasz narzędzia zip deploy na potrzeby wdrażania aplikacji logiki, nie musisz konfigurować rejestru platformy Docker do hostowania obrazów kontenerów. Mimo że aplikacje logiki na platformie Kubernetes są uruchamiane technicznie w kontenerach, usługa Logic Apps z obsługą usługi Azure Arc zarządza tymi kontenerami. W tym scenariuszu wykonaj następujące zadania podczas konfigurowania infrastruktury:
- Powiadom dostawcę zasobów, że tworzysz aplikację logiki na platformie Kubernetes.
- Uwzględnij plan usługi App Service z wdrożeniem. Aby uzyskać więcej informacji, zobacz Dołączanie planu usługi App Service do wdrożenia.
W szablonie usługi Azure Resource Manager (szablon arm) zawierają następujące wartości:
Towar | Właściwość JSON | opis |
---|---|---|
Lokalizacja | location |
Upewnij się, że używasz tej samej lokalizacji zasobu (regionu platformy Azure) co lokalizacja niestandardowa i środowisko Kubernetes. Lokalizacje zasobów aplikacji logiki, lokalizacji niestandardowej i środowiska Kubernetes muszą być takie same. Uwaga: ta wartość nie jest taka sama jak nazwa lokalizacji niestandardowej. |
Rodzaj aplikacji | kind |
Typ wdrażanej aplikacji, aby platforma Azure mogła zidentyfikować aplikację. W przypadku usługi Azure Logic Apps te informacje wyglądają jak w poniższym przykładzie: kubernetes,functionapp,workflowapp,linux |
Lokalizacja rozszerzona | extendedLocation |
Ten obiekt wymaga "name" lokalizacji niestandardowej dla środowiska Kubernetes i musi mieć ustawioną "type" wartość "CustomLocation" . |
Identyfikator zasobu planu hostingu | serverFarmId |
Identyfikator zasobu skojarzonego planu usługi App Service sformatowany w następujący sposób:
|
Parametry połączenia magazynu | AzureWebJobsStorage |
Parametry połączenia dla konta magazynu Ważne: musisz podać parametry połączenia dla konta magazynu w szablonie usługi ARM. W przypadku scenariuszy produkcyjnych lub środowisk upewnij się, że chronisz i zabezpieczasz takie wpisy tajne i informacje poufne, na przykład przy użyciu magazynu kluczy. |
Szablon ARM
W poniższym przykładzie opisano przykładową definicję zasobów usługi Logic Apps z obsługą usługi Azure Arc, której można użyć w szablonie usługi ARM. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją formatu szablonu Microsoft.Web/sites (JSON).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": "kubernetes,functionapp,workflowapp,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"clientAffinityEnabled": false,
"name": "[parameters('name')]",
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "Node|12"
}
}
}
Uwaga
Domyślnie FUNCTIONS_WORKER_RUNTIME ustawienie aplikacji dla aplikacji logiki to dotnet
.
node
Wcześniej była to wartość domyślna. dotnet
Jednak jest teraz wartością domyślną dla wszystkich nowych i istniejących wdrożonych aplikacji logiki z obsługą usługi Arc, nawet w przypadku aplikacji, które miały inną wartość. Ta zmiana nie powinna mieć wpływu na środowisko uruchomieniowe przepływu pracy i wszystkie elementy powinny działać tak samo jak wcześniej. Aby uzyskać więcej informacji, zobacz ustawienie aplikacji FUNCTIONS_WORKER_RUNTIME.
Ustawienie aplikacji APP_KIND dla aplikacji logiki jest ustawione na aplikację przepływu pracy, ale w niektórych scenariuszach brakuje tego ustawienia aplikacji, na przykład ze względu na szablony usługi Azure Resource Manager lub inne scenariusze, w których ustawienie może nie być uwzględnione. Jeśli niektóre akcje nie działają, takie jak akcja Wykonaj kod JavaScript lub przepływ pracy przestaną działać, sprawdź, czy ustawienie aplikacji APP_KIND istnieje i jest ustawione na wartość workflowapp. Aby uzyskać więcej informacji, zobacz ustawienie aplikacji APP_KIND.
Wdrażanie kontenera
Jeśli wolisz używać narzędzi kontenerów i procesów wdrażania, możesz konteneryzować aplikacje logiki i wdrożyć je w usłudze Logic Apps z obsługą usługi Azure Arc. W tym scenariuszu wykonaj następujące zadania wysokiego poziomu podczas konfigurowania infrastruktury:
Skonfiguruj rejestr platformy Docker na potrzeby hostowania obrazów kontenerów.
Aby konteneryzować aplikację logiki, dodaj następujący plik Dockerfile do folderu głównego projektu aplikacji logiki i wykonaj kroki tworzenia i publikowania obrazu w rejestrze platformy Docker, na przykład zapoznaj się z artykułem Samouczek: kompilowanie i wdrażanie obrazów kontenerów w chmurze za pomocą zadań usługi Azure Container Registry.
Uwaga
Jeśli używasz języka SQL jako dostawcy magazynu, upewnij się, że używasz obrazu usługi Azure Functions w wersji 3.3.1 lub nowszej.
FROM mcr.microsoft.com/azure-functions/node:3.3.1 ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true \ FUNCTIONS_V2_COMPATIBILITY_MODE=true COPY . /home/site/wwwroot RUN cd /home/site/wwwroot
Powiadom dostawcę zasobów, że tworzysz aplikację logiki na platformie Kubernetes.
W szablonie wdrożenia wskaż rejestr platformy Docker i obraz kontenera, w którym planujesz wdrożyć. Usługa Azure Logic Apps z jedną dzierżawą używa tych informacji do pobrania obrazu kontenera z rejestru platformy Docker.
Uwzględnij plan usługi App Service z wdrożeniem. Aby uzyskać więcej informacji, zobacz Dołączanie planu usługi App Service do wdrożenia.
W szablonie usługi Azure Resource Manager (szablon arm) uwzględnij następujące wartości:
Towar | Właściwość JSON | opis |
---|---|---|
Lokalizacja | location |
Upewnij się, że używasz tej samej lokalizacji zasobu (regionu platformy Azure) co lokalizacja niestandardowa i środowisko Kubernetes. Lokalizacje zasobów aplikacji logiki, lokalizacji niestandardowej i środowiska Kubernetes muszą być takie same. Uwaga: ta wartość nie jest taka sama jak nazwa lokalizacji niestandardowej. |
Rodzaj aplikacji | kind |
Typ wdrażanej aplikacji, aby platforma Azure mogła zidentyfikować aplikację. W przypadku usługi Azure Logic Apps te informacje wyglądają jak w poniższym przykładzie: kubernetes,functionapp,workflowapp,container |
Lokalizacja rozszerzona | extendedLocation |
Ten obiekt wymaga "name" lokalizacji niestandardowej dla środowiska Kubernetes i musi mieć "type" ustawioną wartość "CustomLocation" . |
Nazwa kontenera | linuxFxVersion |
Nazwa kontenera sformatowana w następujący sposób: DOCKER\|<container-name> |
Identyfikator zasobu planu hostingu | serverFarmId |
Identyfikator zasobu skojarzonego planu usługi App Service sformatowany w następujący sposób:
|
Parametry połączenia magazynu | AzureWebJobsStorage |
Parametry połączenia dla konta magazynu Ważne: podczas wdrażania w kontenerze platformy Docker należy podać parametry połączenia dla konta magazynu w szablonie usługi ARM. W przypadku scenariuszy produkcyjnych lub środowisk upewnij się, że chronisz i zabezpieczasz takie wpisy tajne i informacje poufne, na przykład przy użyciu magazynu kluczy. |
Aby odwołać się do rejestru platformy Docker i obrazu kontenera, uwzględnij następujące wartości w szablonie:
Towar | Właściwość JSON | opis |
---|---|---|
Adres URL serwera rejestru platformy Docker | DOCKER_REGISTRY_SERVER_URL |
Adres URL serwera rejestru platformy Docker |
Serwer rejestru platformy Docker | DOCKER_REGISTRY_SERVER_USERNAME |
Nazwa użytkownika do uzyskiwania dostępu do serwera rejestru platformy Docker |
Hasło serwera rejestru platformy Docker | DOCKER_REGISTRY_SERVER_PASSWORD |
Hasło umożliwiające dostęp do serwera rejestru platformy Docker |
Szablon ARM
W poniższym przykładzie opisano przykładową definicję zasobów usługi Logic Apps z obsługą usługi Azure Arc, której można użyć w szablonie usługi ARM. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą formatu szablonu Microsoft.Web/sites (szablon arm ).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": " kubernetes,functionapp,workflowapp,container",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"name": "[parameters('name')]",
"clientAffinityEnabled": false,
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
},
{
"name": "DOCKER_REGISTRY_SERVER_URL",
"value": "<docker-registry-server-URL>"
},
{
"name": "DOCKER_REGISTRY_SERVER_USERNAME",
"value": "<docker-registry-server-username>"
},
{
"name": "DOCKER_REGISTRY_SERVER_PASSWORD",
"value": "<docker-registry-server-password>"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "DOCKER|<container-name>"
}
}
}
Uwaga
Wcześniej wartością domyślną ustawienia FUNCTIONS_WORKER_RUNTIME było node
.
dotnet
Teraz jest to wartość domyślna dla wszystkich nowych i istniejących wdrożonych aplikacji logiki w warstwie Standardowa, nawet w przypadku aplikacji, które miały inną wartość. Ta zmiana nie powinna mieć wpływu na środowisko uruchomieniowe przepływu pracy i wszystkie elementy powinny działać tak samo jak wcześniej. Aby uzyskać więcej informacji, zobacz ustawienie aplikacji FUNCTIONS_WORKER_RUNTIME.
Uwzględnij plan usługi App Service z wdrożeniem
Niezależnie od tego, czy masz wdrożenie standardowe, czy kontenerowe, musisz uwzględnić plan usługi App Service we wdrożeniu. Mimo że ten plan staje się mniej istotny w środowisku Kubernetes, wdrożenia standardowe i kontenery nadal wymagają planu usługi App Service.
Podczas gdy inne opcje tworzenia zwykle obsługują aprowizowanie zasobu platformy Azure dla tego planu, jeśli wdrożenia korzystają z szablonów "infrastruktura jako kod", musisz jawnie utworzyć zasób platformy Azure dla planu. Zasób planu hostingu nie zmienia się, tylko sku
informacje.
W szablonie usługi Azure Resource Manager (szablon arm) uwzględnij następujące wartości:
Towar | Właściwość JSON | opis |
---|---|---|
Lokalizacja | location |
Upewnij się, że używasz tej samej lokalizacji zasobu (regionu platformy Azure) co lokalizacja niestandardowa i środowisko Kubernetes. Lokalizacje zasobów aplikacji logiki, lokalizacji niestandardowej i środowiska Kubernetes muszą być takie same. Uwaga: ta wartość nie jest taka sama jak nazwa lokalizacji niestandardowej. |
Rodzaj | kind |
Rodzaj wdrażanego planu usługi App Service, który musi być kubernetes,linux |
Lokalizacja rozszerzona | extendedLocation |
Ten obiekt wymaga "name" lokalizacji niestandardowej dla środowiska Kubernetes i musi mieć "type" ustawioną wartość "CustomLocation" . |
Nazwa planu hostingu | name |
Nazwa planu usługi App Service |
Warstwa planu | sku: tier |
Warstwa planu usługi App Service, która jest K1 |
Nazwa planu | sku: name |
Nazwa planu usługi App Service, czyli Kubernetes |
Szablon ARM
W poniższym przykładzie opisano przykładową definicję zasobu planu usługi App Service, której można użyć z wdrożeniem aplikacji. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją formatu szablonu Microsoft.Web/serverfarms (szablon arm ).
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-12-01",
"location": "<location>",
"name": "<hosting-plan-name>",
"kind": "kubernetes,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"sku": {
"tier": "Kubernetes",
"name": "K1",
"capacity": 1
},
"properties": {
"kubeEnvironmentProfile": {
"id": "[parameters('kubeEnvironmentId')]"
}
}
}
Zmienianie domyślnego zachowania skalowania
Usługa Logic Apps z obsługą usługi Azure Arc automatycznie zarządza skalowaniem aplikacji logiki na podstawie liczby zadań w kolejce magazynu zaplecza. Można jednak zmienić domyślne zachowanie skalowania.
W aplikacji logiki definicja przepływu pracy określa sekwencję akcji do uruchomienia. Za każdym razem, gdy zostanie wyzwolony przebieg przepływu pracy, środowisko uruchomieniowe usługi Azure Logic Apps tworzy zadanie dla każdego typu akcji w definicji przepływu pracy. Następnie środowisko uruchomieniowe organizuje te zadania w sekwencjonator zadań. Ten sekwencjonator organizuje uruchamianie zadań dla definicji przepływu pracy, ale podstawowy aparat aranżacji zadań usługi Azure Logic Apps uruchamia każde zadanie.
W przypadku stanowych przepływów pracy aparat aranżacji zadań używa komunikatów kolejki magazynu do planowania zadań w sekwencjach zadań. W tle dyspozytorzy zadań (lub wystąpienia procesu roboczego dyspozytora) monitorują te kolejki zadań. Aparat aranżacji używa domyślnej minimalnej i maksymalnej liczby wystąpień procesów roboczych do monitorowania kolejek zadań. W przypadku bezstanowych przepływów pracy aparat orkiestracji całkowicie przechowuje stany akcji w pamięci.
Aby zmienić domyślne zachowanie skalowania, należy określić różne minimalne i maksymalne liczby wystąpień procesu roboczego, które monitorują kolejki zadań.
Wymagania wstępne dotyczące zmiany skalowania
W klastrze Kubernetes z obsługą usługi Azure Arc wcześniej utworzone rozszerzenie pakietu usługi App Service musi mieć właściwość ustawioną keda.enabled
na true
. Aby uzyskać więcej informacji, zapoznaj się z wymaganiami wstępnymi najwyższego poziomu.
Zmienianie progu skalowania
W usłudze Logic Apps z obsługą usługi Azure Arc długość kolejki zadań wyzwala zdarzenie skalowania i ustawia próg częstotliwości skalowania dla aplikacji logiki. Możesz zmienić długość kolejki, która ma wartość domyślną ustawioną na 20
zadania. Aby częściej skalować, zwiększ długość kolejki. Aby częściej skalować, zmniejsz długość kolejki. Ten proces może wymagać pewnej próby i błędu.
Aby zmienić długość kolejki, w pliku host.json na poziomie głównym projektu aplikacji logiki ustaw Runtime.ScaleMonitor.KEDA.TargetQueueLength
właściwość, na przykład:
"extensions": {
"workflow": {
"settings": {
"Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
}
}
}
Zmienianie maksymalnej przepływności
W istniejącym zasobie aplikacji logiki można zmienić maksymalną liczbę wystąpień procesu roboczego, która ma wartość domyślną ustawioną na 2
. Ta wartość kontroluje górny limit liczby wystąpień procesów roboczych, które mogą monitorować kolejki zadań.
Aby zmienić tę wartość maksymalną, użyj interfejsu wiersza polecenia platformy Azure (tylko tworzenie aplikacji logiki) i witryny Azure Portal.
Interfejs wiersza polecenia platformy Azure
Aby utworzyć nową aplikację logiki, uruchom polecenie , az logicapp create
z następującymi parametrami:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]
Aby skonfigurować maksymalną liczbę wystąpień, użyj parametru --settings
:
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "K8SE_APP_MAX_INSTANCE_COUNT=10"
Azure Portal
W ustawieniach aplikacji logiki opartej na jednej dzierżawie dodaj lub edytuj K8SE_APP_MAX_INSTANCE_COUNT
wartość ustawienia, wykonując następujące kroki:
W witrynie Azure Portal znajdź i otwórz aplikację logiki opartą na jednej dzierżawie.
W menu aplikacji logiki w obszarze Ustawienia wybierz pozycję Konfiguracja.
W okienku Konfiguracja w obszarze Ustawienia aplikacji dodaj nowe ustawienie aplikacji lub edytuj istniejącą wartość, jeśli już dodano.
Wybierz pozycję Nowe ustawienie aplikacji i dodaj
K8SE_APP_MAX_INSTANCE_COUNT
ustawienie z odpowiednią wartością maksymalną.Edytuj istniejącą wartość ustawienia
K8SE_APP_MAX_INSTANCE_COUNT
.
Po zakończeniu zapisz zmiany.
Zmień minimalną przepływność
W istniejącym zasobie aplikacji logiki można zmienić minimalną liczbę wystąpień procesu roboczego, która ma wartość domyślną ustawioną na 1
. Ta wartość kontroluje niższy limit liczby wystąpień procesów roboczych, które mogą monitorować kolejki zadań. Aby uzyskać wysoką dostępność lub wydajność, zwiększ tę wartość.
Aby zmienić to minimum, użyj interfejsu wiersza polecenia platformy Azure lub witryny Azure Portal.
Interfejs wiersza polecenia platformy Azure
W przypadku istniejącego zasobu aplikacji logiki uruchom polecenie , az logicapp scale
z następującymi parametrami:
az logicapp scale --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--instance-count 5
Aby utworzyć nową aplikację logiki, uruchom polecenie , az logicapp create
z następującymi parametrami:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]
Azure Portal
W ustawieniach aplikacji logiki opartej na jednej dzierżawie zmień wartość właściwości Skalowanie w poziomie , wykonując następujące kroki:
W witrynie Azure Portal znajdź i otwórz aplikację logiki opartą na jednej dzierżawie.
W menu aplikacji logiki w obszarze Ustawienia wybierz pozycję Skaluj w poziomie.
W okienku Skalowanie w poziomie przeciągnij suwak minimalnych wystąpień do żądanej wartości.
Po zakończeniu zapisz zmiany.
Rozwiązywanie problemów
Aby uzyskać więcej informacji na temat wdrożonych aplikacji logiki, wypróbuj następujące opcje:
Uzyskiwanie dostępu do ustawień i konfiguracji aplikacji
Aby uzyskać dostęp do ustawień aplikacji, uruchom polecenie , az logicapp config appsettings
z następującymi parametrami:
az logicapp config appsettings list --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Aby skonfigurować ustawienie aplikacji, uruchom polecenie , az logicapp config appsettings set
z następującymi parametrami. Pamiętaj, aby użyć parametru --settings
z nazwą i wartością ustawienia.
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "MySetting=1"
Aby usunąć ustawienie aplikacji, uruchom polecenie , az logicapp config appsettings delete
z następującymi parametrami. Pamiętaj, aby użyć parametru --setting-names
z nazwą ustawienia, które chcesz usunąć.
az logicapp config appsettings delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--setting-names MySetting
Wyświetlanie właściwości aplikacji logiki
Aby wyświetlić informacje i właściwości aplikacji, uruchom polecenie , az logicapp show
z następującymi parametrami:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Monitorowanie aktywności przepływu pracy
Aby wyświetlić działanie przepływu pracy w aplikacji logiki, wykonaj następujące kroki:
W witrynie Azure Portal znajdź i otwórz wdrożona aplikację logiki.
W menu aplikacji logiki wybierz pozycję Przepływy pracy, a następnie wybierz przepływ pracy.
W menu przepływu pracy wybierz pozycję Monitor.
Zbieranie dzienników
Aby uzyskać zarejestrowane dane dotyczące aplikacji logiki, włącz usługę Application Insights w aplikacji logiki, jeśli nie została jeszcze włączona.