Udostępnij za pośrednictwem


Konfigurowanie własnej infrastruktury dla standardowych aplikacji logiki przy użyciu wdrożenia hybrydowego (wersja zapoznawcza)

Dotyczy: Azure Logic Apps (Standardowa)

Uwaga

Ta funkcja jest dostępna w wersji zapoznawczej, powoduje naliczanie opłat za użycie i podlega dodatkowym warunkom użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Czasami trzeba skonfigurować własną infrastrukturę i zarządzać nią, aby spełnić określone potrzeby dotyczące zgodności z przepisami, prywatności danych lub ograniczeń sieci. Usługa Azure Logic Apps oferuje hybrydowy model wdrażania, dzięki czemu można wdrażać i hostować standardowe przepływy pracy aplikacji logiki w scenariuszach lokalnych, chmury prywatnej lub chmury publicznej. Ten model zapewnia możliwości hostowania rozwiązań integracji w częściowo połączonych środowiskach, gdy konieczne jest użycie lokalnego przetwarzania, magazynu danych i dostępu do sieci. Dzięki opcji hybrydowej masz swobodę i elastyczność wyboru najlepszego środowiska dla przepływów pracy.

Jak działa wdrożenie hybrydowe

Standardowe przepływy pracy aplikacji logiki z opcją wdrożenia hybrydowego są obsługiwane przez środowisko uruchomieniowe usługi Azure Logic Apps hostowane w rozszerzeniu usługi Azure Container Apps. W przepływie pracy wszystkie wbudowane operacje są uruchamiane lokalnie ze środowiskiem uruchomieniowym, aby uzyskać większą przepływność dostępu do lokalnych źródeł danych. Jeśli potrzebujesz dostępu do zasobów danych innych niż lokalne, na przykład usług w chmurze, takich jak Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn lub ServiceNow, możesz wybrać operacje z 1000 łączników hostowanych na platformie Azure w celu uwzględnienia ich w przepływach pracy. Aby uzyskać więcej informacji, zobacz Zarządzane (udostępnione) łączniki. Mimo że musisz mieć łączność z Internetem, aby zarządzać aplikacją logiki w witrynie Azure Portal, częściowo połączony charakter tej platformy umożliwia wchłonięcie wszelkich tymczasowych problemów z łącznością z Internetem.

Jeśli na przykład masz scenariusz lokalny, poniższe omówienie architektury pokazuje, gdzie są hostowane standardowe przepływy pracy aplikacji logiki i uruchamiane w modelu hybrydowym. Częściowo połączone środowisko obejmuje następujące zasoby do hostowania i pracy z aplikacjami logiki w warstwie Standardowa, które są wdrażane jako zasoby usługi Azure Container Apps:

  • Klastry usługi Azure Kubernetes Service z obsługą usługi Azure Arc (AKS)
  • Baza danych SQL do lokalnego przechowywania historii uruchamiania przepływu pracy, danych wejściowych i wyjściowych na potrzeby przetwarzania
  • Udział plików bloku komunikatów serwera (SMB) do lokalnego przechowywania artefaktów używanych przez przepływy pracy

Diagram z omówieniem architektury, w którym standardowe aplikacje logiki są hostowane w częściowo połączonym środowisku.

Do hostowania można również skonfigurować klastry Kubernetes z włączoną usługą Azure Arc i korzystać z nich w infrastrukturze hiperkonwergentnej usługi Azure Stack (HCI) lub klastrach Kubernetes z włączoną usługą Azure Arc w systemie Windows Server.

Więcej informacji można znaleźć w następującej dokumentacji:

W tym przewodniku z instrukcjami pokazano, jak skonfigurować niezbędne zasoby lokalne w infrastrukturze, aby można było tworzyć, wdrażać i hostować standardowy przepływ pracy aplikacji logiki przy użyciu hybrydowego modelu wdrażania.

Sposób działania rozliczeń

W przypadku opcji hybrydowej odpowiadasz za następujące elementy:

  • Infrastruktura Kubernetes z obsługą usługi Azure Arc
  • Licencja programu SQL Server
  • Opłata rozliczeniowa w wysokości 0,18 USD za procesor wirtualny/godzinę w celu obsługi obciążeń standardowej aplikacji logiki

W tym modelu rozliczeniowym płacisz tylko za zasoby potrzebne i skalowane dla obciążeń dynamicznych bez konieczności kupowania szczytowego użycia. W przypadku przepływów pracy korzystających z operacji łącznika hostowanego na platformie Azure, takich jak Microsoft Teams lub Microsoft Office 365, istniejące ceny w warstwie Standardowa (z jedną dzierżawą) mają zastosowanie do tych wykonań operacji.

Ograniczenia

  • Wdrożenie hybrydowe jest obecnie dostępne i obsługiwane tylko dla następujących klastrów Kubernetes z obsługą usługi Azure Arc:

    • Klastry platformy Kubernetes z obsługą usługi Azure Arc
    • Klastry Kubernetes z obsługą usługi Azure Arc w usłudze Azure Stack HCI
    • Klastry Kubernetes z obsługą usługi Azure Arc w systemie Windows Server

Wymagania wstępne

Tworzenie klastra Kubernetes

Aby można było wdrożyć aplikację logiki w warstwie Standardowa jako zasób lokalny w klastrze Kubernetes z obsługą usługi Azure Arc w połączonym środowisku usługi Azure Container Apps, najpierw potrzebujesz klastra Kubernetes. Później połączysz ten klaster z usługą Azure Arc, aby mieć klaster Kubernetes z włączoną usługą Azure Arc.

Klaster Kubernetes wymaga łączności przychodzącej i wychodzącej z bazą danych SQL, którą później utworzysz jako dostawca magazynu, oraz udziałem plików bloku komunikatów serwera utworzonym później dla magazynu artefaktów. Te zasoby muszą istnieć w tej samej sieci.

Uwaga

Możesz również utworzyć klaster Kubernetes w infrastrukturze Azure Stack HCI lub klastrze Kubernetes w systemie Windows Server i zastosować kroki opisane w tym przewodniku, aby połączyć klaster z usługą Azure Arc i skonfigurować połączone środowisko. Aby uzyskać więcej informacji na temat usług Azure Stack HCI i AKS w systemie Windows Server, zobacz następujące zasoby:

  1. Ustaw następujące zmienne środowiskowe dla klastra Kubernetes, który chcesz utworzyć:

    SUBSCRIPTION="<Azure-subscription-ID>"
    AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>"
    AKS_NAME="<aks-cluster-name>"
    LOCATION="eastus"
    
    Parametr Wymagania Wartość Opis
    SUBSKRYPCJA Tak <Identyfikator subskrypcji platformy Azure> Identyfikator subskrypcji platformy Azure
    AKS_CLUSTER_GROUP_NAME Tak <aks-cluster-resource-group-name> Nazwa grupy zasobów platformy Azure do użycia z klastrem Kubernetes. Ta nazwa musi być unikatowa w różnych regionach i może zawierać tylko litery, cyfry, łączniki (-), podkreślenia (_), nawiasy (()) i kropki (.).

    W tym przykładzie jest używana funkcja Hybrid-RG.
    AKS_NAME Tak <aks-cluster-name> Nazwa klastra Kubernetes.
    LOKALIZACJA Tak <Region świadczenia usługi Azure> Region platformy Azure obsługujący aplikacje kontenerów platformy Azure w usłudze Azure Arc z obsługą platformy Kubernetes.

    W tym przykładzie użyto lokalizacji eastus.
  2. Uruchom następujące polecenia przy użyciu środowiska powłoki Bash w usłudze Azure Cloud Shell lub lokalnie przy użyciu interfejsu wiersza polecenia platformy Azure zainstalowanego na komputerze:

    Uwaga

    Pamiętaj, aby zmienić wartości węzłów max-count i min-count na podstawie wymagań dotyczących obciążenia.

    az login
    az account set --subscription $SUBSCRIPTION
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az extension add --name k8s-extension --upgrade --yes
    az group create
       --name $AKS_CLUSTER_GROUP_NAME
       --location $LOCATION
    az aks create \
       --resource-group $AKS_CLUSTER_GROUP_NAME \
       --name $AKS_NAME \
       --enable-aad \
       --generate-ssh-keys \
       --enable-cluster-autoscaler \
       --max-count 6 \
       --min-count 1
    
    Parametr Wymagania Wartość Opis
    max count Nie. <max-nodes-value> Maksymalna liczba węzłów do użycia dla narzędzia do skalowania automatycznego podczas dołączania enable-cluster-autoscaler opcji. Ta wartość waha się od 1 do 1000.
    min count Nie. <minimalna wartość węzłów> Minimalna liczba węzłów do użycia dla narzędzia do skalowania automatycznego podczas dołączania enable-cluster-autoscaler opcji. Ta wartość waha się od 1 do 1000.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

Łączenie klastra Kubernetes z usługą Azure Arc

Aby utworzyć klaster Kubernetes z włączoną usługą Azure Arc, połącz klaster Kubernetes z usługą Azure Arc.

Uwaga

Kroki opisane w tej sekcji i dalej można znaleźć w celu utworzenia połączonego środowiska w skrycie o nazwie EnvironmentSetup.ps1, który można znaleźć w repozytorium GitHub o nazwie Azure/logicapps. Możesz zmodyfikować ten skrypt i użyć go do spełnienia wymagań i scenariuszy.

Skrypt jest niepodpisany, więc przed uruchomieniem skryptu uruchom następujące polecenie programu Azure PowerShell jako administrator, aby ustawić zasady wykonywania:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Aby uzyskać więcej informacji, zobacz Set-ExecutionPolicy.

  1. Zainstaluj następujące rozszerzenia interfejsu wiersza polecenia platformy Azure:

    az extension add --name connectedk8s --upgrade --yes 
    az extension add --name k8s-extension --upgrade --yes 
    az extension add --name customlocation --upgrade --yes 
    az extension add --name containerapp --upgrade --yes 
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  2. Zarejestruj następujące wymagane przestrzenie nazw:

    az provider register --namespace Microsoft.ExtendedLocation --wait
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az provider register --namespace Microsoft.App --wait
    az provider register --namespace Microsoft.OperationalInsights --wait
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  3. Zainstaluj interfejs wiersza polecenia platformy Kubernetes o nazwie kubectl:

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    
    choco install kubernetes-cli -y
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  4. Zainstaluj menedżera pakietów Kubernetes o nazwie Helm:

    choco install kubernetes-helm
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  5. Zainstaluj sterownik SMB przy użyciu następujących poleceń programu Helm:

    1. Dodaj określone repozytorium wykresów, pobierz najnowsze informacje dotyczące dostępnych wykresów i zainstaluj określone archiwum wykresów.

      helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts 
      helm repo update
      helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0 
      

      Aby uzyskać więcej informacji, zobacz następujące zasoby:

    2. Upewnij się, że sterownik SMB jest zainstalowany, uruchamiając następujące polecenie kubectl , które powinno wyświetlić listę smb.csi.k8s.io:

      kubectl get csidriver
      

      Aby uzyskać więcej informacji, zobacz kubectl get.

Łączenie klastra Kubernetes z usługą Azure Arc

  1. Przetestuj połączenie z klastrem, uzyskując plik kubeconfig:

    az aks get-credentials \
       --resource-group $AKS_CLUSTER_GROUP_NAME \
       --name $AKS_NAME \
       --admin
    kubectl get ns 
    

    Domyślnie plik kubeconfig jest zapisywany w ścieżce ~/.kube/config. To polecenie dotyczy naszego przykładowego klastra Kubernetes i różni się w przypadku innych rodzajów klastrów Kubernetes.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  2. Na podstawie wdrożenia klastra Kubernetes ustaw następującą zmienną środowiskową, aby podać nazwę używaną dla grupy zasobów platformy Azure zawierającej klaster i zasoby z obsługą usługi Azure Arc:

    GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
    
    Parametr Wymagania Wartość Opis
    GROUP_NAME Tak <Azure-Arc-cluster-resource-group-name> Nazwa grupy zasobów platformy Azure do użycia z klastrem z obsługą usługi Azure Arc i innymi zasobami, takimi jak rozszerzenie usługi Azure Container Apps, lokalizacja niestandardowa i połączone środowisko usługi Azure Container Apps. Ta nazwa musi być unikatowa w różnych regionach i może zawierać tylko litery, cyfry, łączniki (-), podkreślenia (_), nawiasy (()) i kropki (.).

    W tym przykładzie użyto klasy Hybrid-Arc-RG.
  3. Utwórz grupę zasobów platformy Azure dla klastra i zasobów z obsługą usługi Azure Arc:

    az group create \
       --name $GROUP_NAME \
       --location $LOCATION
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  4. Ustaw następującą zmienną środowiskową, aby podać nazwę klastra Kubernetes z obsługą usługi Azure Arc:

    CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
    
    Parametr Wymagania Wartość Opis
    CONNECTED_CLUSTER_NAME Tak <Azure-Arc-cluster-resource-group-name-cluster> Nazwa używana dla klastra z obsługą usługi Azure Arc. Ta nazwa musi być unikatowa w różnych regionach i może zawierać tylko litery, cyfry, łączniki (-), podkreślenia (_), nawiasy (()) i kropki (.).

    W tym przykładzie użyto klastra Hybrid-Arc-RG-cluster.
  5. Połącz utworzony wcześniej klaster Kubernetes z usługą Azure Arc:

    az connectedk8s connect \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  6. Zweryfikuj połączenie między usługą Azure Arc i klastrem Kubernetes:

    az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME
    

    Jeśli dane wyjściowe pokazują, że wartość właściwości provisioningState nie jest ustawiona na Powodzenie, uruchom polecenie ponownie po jednej minucie.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

Tworzenie obszaru roboczego usługi Azure Log Analytics

Możesz utworzyć opcjonalny, ale zalecany obszar roboczy usługi Azure Log Analytics, który zapewnia dostęp do dzienników dla aplikacji uruchamianych w klastrze Kubernetes z obsługą usługi Azure Arc.

  1. Ustaw następującą zmienną środowiskową, aby podać nazwę obszaru roboczego usługi Log Analytics:

    WORKSPACE_NAME="$GROUP_NAME-workspace"
    
    Parametr Wymagania Wartość Opis
    WORKSPACE_NAME Tak <Azure-Arc-cluster-resource-group-name-workspace> Nazwa używana dla obszaru roboczego usługi Log Analytics. Ta nazwa musi być unikatowa w grupie zasobów.

    W tym przykładzie użyto obszaru roboczego Hybrid-Arc-RG-.
  2. Utwórz obszar roboczy usługi Log Analytics:

    az monitor log-analytics workspace create \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  3. Pobierz identyfikator zakodowany w formacie base64 i klucz współużytkowany dla obszaru roboczego usługi Log Analytics. Te wartości są potrzebne do późniejszego kroku.

    LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME \
       --query customerId \
       --output tsv)
    
    LOG_ANALYTICS_WORKSPACE_ID_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_WORKSPACE_ID))
    
    LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME \
       --query primarySharedKey \
       --output tsv)
    
    LOG_ANALYTICS_KEY_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_KEY))
    
    Parametr Wymagania Wartość Opis
    LOG_ANALYTICS_WORKSPACE_ID Tak Identyfikator obszaru roboczego usługi Log Analytics.
    LOG_ANALYTICS_WORKSPACE_ID_ENC Tak Identyfikator zakodowany w formacie base64 dla obszaru roboczego usługi Log Analytics.
    LOG_ANALYTICS_KEY Tak Klucz wspólny dla obszaru roboczego usługi Log Analytics.
    LOG_ANALYTICS_ENC Tak Klucz udostępniony zakodowany w formacie base64 dla obszaru roboczego usługi Log Analytics.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

Tworzenie i instalowanie rozszerzenia usługi Azure Container Apps

Teraz utwórz i zainstaluj rozszerzenie Azure Container Apps za pomocą klastra Kubernetes z włączoną usługą Azure Arc jako zasób lokalny.

Ważne

Jeśli chcesz wdrożyć usługę AKS w usłudze Azure Stack HCI, przed utworzeniem i zainstalowaniem rozszerzenia usługi Azure Container Apps upewnij się, że skonfigurowano usługę HAProxy lub niestandardowy moduł równoważenia obciążenia.

  1. Ustaw następujące zmienne środowiskowe na następujące wartości:

    EXTENSION_NAME="logicapps-aca-extension"
    NAMESPACE="logicapps-aca-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
    Parametr Wymagania Wartość Opis
    EXTENSION_NAME Tak logicapps-aca-extension Nazwa rozszerzenia Azure Container Apps.
    NAMESPACE Tak logicapps-aca-ns Przestrzeń nazw klastra, w której chcesz aprowizować zasoby.
    CONNECTED_ENVIRONMENT_NAME Tak <nazwa środowiska połączonego> Unikatowa nazwa używana dla połączonego środowiska usługi Azure Container Apps. Ta nazwa staje się częścią nazwy domeny dla standardowej aplikacji logiki, którą tworzysz, wdrażasz i hostujesz w połączonym środowisku usługi Azure Container Apps.
  2. Utwórz i zainstaluj rozszerzenie z włączoną usługą Log Analytics dla klastra Kubernetes z obsługą usługi Azure Arc. Nie można później dodać usługi Log Analytics do rozszerzenia.

    az k8s-extension create \
       --resource-group $GROUP_NAME \
       --name $EXTENSION_NAME \
       --cluster-type connectedClusters \
       --cluster-name $CONNECTED_CLUSTER_NAME \
       --extension-type 'Microsoft.App.Environment' \
       --release-train stable \
       --auto-upgrade-minor-version true \
       --scope cluster \
       --release-namespace $NAMESPACE \
       --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \
       --configuration-settings "appsNamespace=${NAMESPACE}" \
       --configuration-settings "keda.enabled=true" \
       --configuration-settings "keda.logicAppsScaler.enabled=true" \
       --configuration-settings "keda.logicAppsScaler.replicaCount=1" \
       --configuration-settings "containerAppController.api.functionsServerEnabled=true" \
       --configuration-settings "envoy.externalServiceAzureILB=false" \
       --configuration-settings "functionsProxyApiConfig.enabled=true" \
       --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" \
       --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${GROUP_NAME}" \
       --configuration-settings "logProcessor.appLogs.destination=log-analytics" \
       --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \
       --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"
    
    Parametr Wymagania opis
    Microsoft.CustomLocation.ServiceAccount Tak Konto usługi utworzone dla lokalizacji niestandardowej.

    Zalecenie: ustaw wartość domyślną.
    appsNamespace Tak Przestrzeń nazw do użycia do tworzenia definicji aplikacji i poprawek. Ta wartość musi być zgodna z przestrzenią nazw wydania dla rozszerzenia usługi Azure Container Apps.
    nazwa_klastra Tak Nazwa środowiska Kubernetes rozszerzenia Azure Container Apps do utworzenia dla rozszerzenia.
    keda.enabled Tak Włącz skalowanie automatyczne oparte na zdarzeniach platformy Kubernetes (KEDA). Ta wartość jest wymagana i musi być ustawiona na true.
    keda.logicAppsScaler.enabled Tak Włącz narzędzie skalowania usługi Azure Logic Apps w usłudze KEDA. Ta wartość jest wymagana i musi być ustawiona na true.
    keda.logicAppsScaler.replicaCount Tak Początkowa liczba skalowania aplikacji logiki do uruchomienia. Wartość domyślna ustawiona na 1. Ta wartość skaluje w górę lub skaluje w dół do 0, jeśli w środowisku nie istnieją żadne aplikacje logiki.
    containerAppController.api.functionsServerEnabled Tak Włącz usługę odpowiedzialną za konwertowanie wyzwalaczy przepływu pracy aplikacji logiki na obiekty skalowane w skali KEDA. Ta wartość jest wymagana i musi być ustawiona na true.
    envoy.externalServiceAzureILB Tak Określa, czy wysłannik działa jako wewnętrzny moduł równoważenia obciążenia, czy publiczny moduł równoważenia obciążenia.

    - true: Wysłannik działa jako wewnętrzny moduł równoważenia obciążenia. Środowisko uruchomieniowe usługi Azure Logic Apps jest dostępne tylko w sieci prywatnej.

    - false: Wysłannik działa jako publiczny moduł równoważenia obciążenia. Środowisko uruchomieniowe usługi Azure Logic Apps jest dostępne za pośrednictwem sieci publicznej.
    functionsProxyApiConfig.enabled Tak Włącz usługę proxy, która ułatwia dostęp interfejsu API do środowiska uruchomieniowego usługi Azure Logic Apps z witryny Azure Portal. Ta wartość jest wymagana i musi być ustawiona na true.
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Tak, ale tylko wtedy, gdy bazowy klaster jest usługą Azure Kubernetes Service. Nazwa grupy zasobów, w której istnieje klaster Kubernetes.
    logProcessor.appLogs.destination Nie. Miejsce docelowe do użycia w dziennikach aplikacji. Wartość to log-analytics lub brak, co powoduje wyłączenie rejestrowania.
    logProcessor.appLogs.logAnalyticsConfig.customerId Tak, ale tylko wtedy, gdy parametr logProcessor.appLogs.destination jest ustawiony na log-analytics. Identyfikator zakodowany w formacie base64 dla obszaru roboczego usługi Log Analytics. Pamiętaj, aby skonfigurować ten parametr jako ustawienie chronione.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Tak, ale tylko wtedy, gdy parametr logProcessor.appLogs.destination jest ustawiony na log-analytics. Klucz udostępniony zakodowany w formacie base64 dla obszaru roboczego usługi Log Analytics. Pamiętaj, aby skonfigurować ten parametr jako ustawienie chronione.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  3. Zapisz wartość identyfikatora rozszerzenia Azure Container Apps, aby użyć go później:

    EXTENSION_ID=$(az k8s-extension show \
       --cluster-type connectedClusters \
       --cluster-name $CONNECTED_CLUSTER_NAME \
       --resource-group $GROUP_NAME \
       --name $EXTENSION_NAME \
       --query id \
       --output tsv)
    
    Parametr Wymagania Wartość Opis
    EXTENSION_ID Tak <extension-ID> Identyfikator rozszerzenia usługi Azure Container Apps.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  4. Zanim przejdziesz dalej, poczekaj na pełne zainstalowanie rozszerzenia. Aby sesja terminalu czekała na zakończenie instalacji, uruchom następujące polecenie:

    az resource wait \
       --ids $EXTENSION_ID \
       --custom "properties.provisioningState!='Pending'" \
       --api-version "2020-07-01-preview" 
    

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

Tworzenie lokalizacji niestandardowej

  1. Ustaw następujące zmienne środowiskowe na określone wartości:

    CUSTOM_LOCATION_NAME="my-custom-location"
    
    CONNECTED_CLUSTER_ID=$(az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME \
       --query id \
       --output tsv)
    
    Parametr Wymagania Wartość Opis
    CUSTOM_LOCATION_NAME Tak my-custom-location Nazwa używana dla lokalizacji niestandardowej.
    CONNECTED_CLUSTER_ID Tak <Azure-Arc-cluster-ID> Identyfikator klastra Kubernetes z obsługą usługi Azure Arc.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  2. Utwórz lokalizację niestandardową:

    az customlocation create \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --host-resource-id $CONNECTED_CLUSTER_ID \
       --namespace $NAMESPACE \
       --cluster-extension-ids $EXTENSION_ID \
       --location $LOCATION
    

    Uwaga

    Jeśli wystąpią problemy z tworzeniem lokalizacji niestandardowej w klastrze, może być konieczne włączenie funkcji lokalizacji niestandardowej w klastrze. Ten krok jest wymagany w przypadku zalogowania się do interfejsu wiersza polecenia platformy Azure przy użyciu jednostki usługi lub zalogowania się jako użytkownik Firmy Microsoft Entra z ograniczonymi uprawnieniami do zasobu klastra.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  3. Sprawdź, czy lokalizacja niestandardowa została pomyślnie utworzona:

    az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME
    

    Jeśli dane wyjściowe pokazują, że wartość właściwości provisioningState nie jest ustawiona na Powodzenie, uruchom polecenie ponownie po jednej minucie.

  4. Zapisz identyfikator lokalizacji niestandardowej do użycia w późniejszym kroku:

    CUSTOM_LOCATION_ID=$(az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --query id \
       --output tsv)
    
    Parametr Wymagania Wartość Opis
    CUSTOM_LOCATION_ID Tak <my-custom-location-ID> Identyfikator lokalizacji niestandardowej.

    Aby uzyskać więcej informacji, zobacz następujące zasoby:

Tworzenie połączonego środowiska usługi Azure Container Apps

Teraz utwórz połączone środowisko usługi Azure Container Apps dla standardowej aplikacji logiki do użycia.

az containerapp connected-env create \
   --resource-group $GROUP_NAME \
   --name $CONNECTED_ENVIRONMENT_NAME \
   --custom-location $CUSTOM_LOCATION_ID \
   --location $LOCATION

Aby uzyskać więcej informacji, zobacz następujące zasoby:

Tworzenie dostawcy magazynu programu SQL Server

Standardowe przepływy pracy aplikacji logiki w modelu wdrażania hybrydowego używają bazy danych SQL jako dostawcy magazynu dla danych używanych przez przepływy pracy i środowiska uruchomieniowego usługi Azure Logic Apps, na przykład historii uruchamiania przepływu pracy, danych wejściowych, danych wyjściowych itd.

Baza danych SQL wymaga łączności przychodzącej i wychodzącej z klastrem Kubernetes, więc te zasoby muszą istnieć w tej samej sieci.

  1. Skonfiguruj dowolną z następujących wersji programu SQL Server:

    Aby uzyskać więcej informacji, zobacz Konfigurowanie magazynu bazy danych SQL dla standardowych przepływów pracy aplikacji logiki.

  2. Upewnij się, że baza danych SQL znajduje się w tej samej sieci co klaster Kubernetes z obsługą usługi Arc i udział plików SMB.

  3. Znajdź i zapisz parametry połączenia dla utworzonej bazy danych SQL.

Konfigurowanie udziału plików SMB dla magazynu artefaktów

Aby przechowywać artefakty, takie jak mapy, schematy i zestawy dla zasobu aplikacji logiki (aplikacji kontenera), musisz mieć udział plików korzystający z protokołu bloku komunikatów serwera (SMB).

  • Aby skonfigurować udział plików SMB, musisz mieć dostęp administratora.

  • Udział plików SMB musi istnieć w tej samej sieci co klaster Kubernetes i baza danych SQL.

  • Udział plików SMB wymaga łączności przychodzącej i wychodzącej z klastrem Kubernetes. Jeśli włączono ograniczenia sieci wirtualnej platformy Azure, upewnij się, że udział plików istnieje w tej samej sieci wirtualnej co klaster Kubernetes lub w równorzędnej sieci wirtualnej.

  • Nie używaj tej samej dokładnej ścieżki udziału plików dla wielu aplikacji logiki.

  • Można użyć oddzielnych udziałów plików SMB dla każdej aplikacji logiki lub użyć różnych folderów w tym samym udziale plików SMB, o ile te foldery nie są zagnieżdżone. Na przykład aplikacja logiki nie używa ścieżki głównej, a następnie innej aplikacji logiki używa podfolderu.

  • Aby wdrożyć aplikację logiki przy użyciu programu Visual Studio Code, upewnij się, że komputer lokalny z programem Visual Studio Code może uzyskać dostęp do udziału plików.

Konfigurowanie udziału plików SMB w systemie Windows

Upewnij się, że udział plików SMB istnieje w tej samej sieci wirtualnej co klaster, w którym instalujesz udział plików.

  1. W systemie Windows przejdź do folderu, który chcesz udostępnić, otwórz menu skrótów, wybierz pozycję Właściwości.

  2. Na karcie Udostępnianie wybierz pozycję Udostępnij.

  3. W wyświetlonym polu wybierz osobę, która ma mieć dostęp do udziału plików.

  4. Wybierz pozycję Udostępnij i skopiuj link dla ścieżki sieciowej.

    Jeśli komputer lokalny nie jest połączony z domeną, zastąp nazwę komputera w ścieżce sieciowej adresem IP.

  5. Zapisz adres IP, który będzie używany później jako nazwa hosta.

Konfigurowanie usługi Azure Files jako udziału plików SMB

Alternatywnie na potrzeby testowania możesz użyć usługi Azure Files jako udziału plików SMB. Upewnij się, że udział plików SMB istnieje w tej samej sieci wirtualnej co klaster, w którym instalujesz udział plików.

  1. W witrynie Azure Portal utwórz konto usługi Azure Storage.

  2. W menu konta magazynu w obszarze Magazyn danych wybierz pozycję Udziały plików.

  3. Na pasku narzędzi strony Udziały plików wybierz pozycję + Udział plików i podaj wymagane informacje dla udziału plików SMB.

  4. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

  5. W menu udział plików wybierz pozycję Przegląd, jeśli nie jest zaznaczone.

  6. Na pasku narzędzi strony Przegląd wybierz pozycję Połącz. W okienku Łączenie wybierz pozycję Pokaż skrypt.

  7. Skopiuj następujące wartości i zapisz je w bezpiecznym miejscu do późniejszego użycia:

    • Nazwa hosta udziału plików, na przykład mystorage.file.core.windows.net
    • Ścieżka udziału plików
    • Nazwa użytkownika bez localhost\
    • Hasło
  8. Na pasku narzędzi strony Przegląd wybierz pozycję + Dodaj katalog i podaj nazwę do użycia dla katalogu. Zapisz tę nazwę, aby użyć jej później.

Te zapisane wartości są potrzebne, aby podać informacje o udziale plików SMB podczas wdrażania zasobu aplikacji logiki.

Aby uzyskać więcej informacji, zobacz Tworzenie udziału plików SMB platformy Azure.

Potwierdzanie połączenia udziału plików SMB

Aby przetestować połączenie między klastrem Kubernetes z obsługą usługi Arc i udziałem plików SMB oraz sprawdzić, czy udział plików jest poprawnie skonfigurowany, wykonaj następujące kroki:

  • Jeśli udział plików SMB nie znajduje się w tym samym klastrze, upewnij się, że operacja ping działa z klastra Kubernetes z włączoną usługą Arc do maszyny wirtualnej, która ma udział plików SMB. Aby sprawdzić, czy operacja ping działa, wykonaj następujące kroki:

    1. W klastrze Kubernetes z obsługą usługi Arc utwórz zasobnik testowy z dowolnym obrazem systemu Linux, takim jak BusyBox lub Ubuntu.

    2. Przejdź do kontenera w zasobniku i zainstaluj pakiet iputils-ping , uruchamiając następujące polecenia systemu Linux:

      apt-get update
      apt-get install iputils-ping
      
  • Aby upewnić się, że udział plików SMB jest poprawnie skonfigurowany, wykonaj następujące kroki:

    1. W zasobniku testowym z tym samym obrazem systemu Linux utwórz folder o nazwie mnt/smb.

    2. Przejdź do katalogu głównego lub głównego zawierającego folder mnt .

    3. Uruchom następujące polecenie:

      - mount -t cifs //{ip-address-smb-computer}/{file-share-name}/mnt/smb -o username={user-name}, password={password}

  • Aby upewnić się, że artefakty są prawidłowo przekazywane, połącz się ze ścieżką udziału plików SMB i sprawdź, czy pliki artefaktów istnieją w prawidłowym folderze określonym podczas wdrażania.

Następne kroki

Tworzenie standardowych przepływów pracy aplikacji logiki na potrzeby wdrożenia hybrydowego we własnej infrastrukturze