Udostępnij za pośrednictwem


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ą:

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 createplatformy 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ą:

  • 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:

    1. Utwórz rejestrację aplikacji przy użyciu az ad sp create polecenia .

    2. Aby przejrzeć wszystkie szczegóły, uruchom az ad sp show polecenie .

    3. 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:

    1. Utwórz nową rejestrację aplikacji Microsoft Entra przy użyciu witryny Azure Portal.

    2. Po zakończeniu tworzenia znajdź nową rejestrację aplikacji w portalu.

    3. W menu rejestracji wybierz pozycję Przegląd i zapisz wartości identyfikatora klienta, identyfikatora dzierżawy i klucza tajnego klienta.

    4. 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.

  • 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

  1. Zaloguj się w witrynie Azure Portal. Sprawdź, czy subskrypcja jest aktywna, uruchamiając następujące polecenie:

    az login
    
  2. 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.

  3. 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 createz 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 createz 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 showz 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-zipz 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 startz 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 stopz 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 restartz 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 deletez 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

  1. 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')"
    } 
    
  2. 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.

  1. 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.

  2. W obszarze Połączenia interfejsu API wybierz połączenie, które znajduje się office365 w tym przykładzie.

  3. W menu połączenia w obszarze Ustawienia wybierz pozycję Zasady>dostępu Dodaj.

  4. W okienku Dodawanie zasad dostępu w polu wyszukiwania znajdź i wybierz wcześniej zapisany identyfikator klienta.

  5. Po zakończeniu wybierz pozycję Dodaj.

  6. 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:

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:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

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:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

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 createz 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:

  1. W witrynie Azure Portal znajdź i otwórz aplikację logiki opartą na jednej dzierżawie.

  2. W menu aplikacji logiki w obszarze Ustawienia wybierz pozycję Konfiguracja.

  3. W okienku Konfiguracja w obszarze Ustawienia aplikacji dodaj nowe ustawienie aplikacji lub edytuj istniejącą wartość, jeśli już dodano.

    1. Wybierz pozycję Nowe ustawienie aplikacji i dodaj K8SE_APP_MAX_INSTANCE_COUNT ustawienie z odpowiednią wartością maksymalną.

    2. Edytuj istniejącą wartość ustawienia K8SE_APP_MAX_INSTANCE_COUNT .

  4. 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 scalez 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 createz 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:

  1. W witrynie Azure Portal znajdź i otwórz aplikację logiki opartą na jednej dzierżawie.

  2. W menu aplikacji logiki w obszarze Ustawienia wybierz pozycję Skaluj w poziomie.

  3. W okienku Skalowanie w poziomie przeciągnij suwak minimalnych wystąpień do żądanej wartości.

  4. 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 appsettingsz 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 setz 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 deletez 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 showz 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:

  1. W witrynie Azure Portal znajdź i otwórz wdrożona aplikację logiki.

  2. W menu aplikacji logiki wybierz pozycję Przepływy pracy, a następnie wybierz przepływ pracy.

  3. 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.

Następne kroki