Udostępnij za pośrednictwem


Konfigurowanie ruchu przychodzącego dla aplikacji w usłudze Azure Container Apps

W tym artykule pokazano, jak włączyć funkcje ruchu przychodzącego dla aplikacji kontenera. Ruch przychodzący to ustawienie dla całej aplikacji. Zmiany ustawień ruchu przychodzącego mają zastosowanie do wszystkich poprawek jednocześnie i nie generują nowych poprawek.

Ustawienia ruchu przychodzącego

Można ustawić następujące właściwości szablonu ruchu przychodzącego:

Właściwości opis Wartości Wymagania
allowInsecure Zezwala na niezabezpieczony ruch do aplikacji kontenera. Po ustawieniu true na żądania HTTP na port 80 nie są automatycznie przekierowywane do portu 443 przy użyciu protokołu HTTPS, co umożliwia niezabezpieczone połączenia. false (ustawienie domyślne), true włącza niezabezpieczone połączenia Nie.
clientCertificateMode Tryb certyfikatu klienta na potrzeby uwierzytelniania mTLS. Ignoruj wskazuje, że serwer odrzuca certyfikat klienta podczas przekazywania dalej. Accept wskazuje, że serwer przekazuje certyfikat klienta, ale nie wymaga certyfikatu klienta. Wymagaj wskazuje, że serwer wymaga certyfikatu klienta. Required, , Accept( Ignore wartość domyślna) Nie.
customDomains Powiązania domeny niestandardowej dla nazw hostów usługi Container Apps. Zobacz Niestandardowe domeny i certyfikaty Tablica powiązań Nie.
exposedPort (Tylko ruch przychodzący TCP) Port TCP nasłuchuje. Jeśli external wartość to true, wartość musi być unikatowa w środowisku usługi Container Apps. Numer portu z 1 do 65535. (nie może być 80 lub 443) Nie.
external Zezwalaj na ruch przychodzący do aplikacji spoza środowiska usługi Container Apps. true lub false(wartość domyślna) Tak
ipSecurityRestrictions Ograniczenia ruchu przychodzącego adresów IP. Zobacz Konfigurowanie ograniczeń ruchu przychodzącego adresów IP Tablica reguł Nie.
stickySessions.affinity Włącza koligację sesji. none (wartość domyślna), sticky Nie.
targetPort Port, na który kontener nasłuchuje żądań przychodzących. Ustaw tę wartość na numer portu używany przez kontener. W przypadku ruchu przychodzącego HTTP punkt końcowy ruchu przychodzącego aplikacji jest zawsze uwidoczniony na porcie 443. Tak
traffic Podział wagi ruchu między poprawkami. Tablica reguł Nie.
transport Typ protokołu transportowego. Auto (ustawienie domyślne) wykrywa protokół HTTP/1 lub HTTP/2, http dla protokołu HTTP/1, http2 dla protokołu HTTP/2 dla tcp protokołu TCP. Nie.

Włączanie ruchu przychodzącego

Ruch przychodzący dla aplikacji kontenera można skonfigurować przy użyciu interfejsu wiersza polecenia platformy Azure, szablonu usługi ARM lub witryny Azure Portal.

To az containerapp ingress enable polecenie umożliwia ruch przychodzący dla aplikacji kontenera. Musisz określić port docelowy i opcjonalnie można ustawić uwidoczniony port, jeśli typ transportu to tcp.

az containerapp ingress enable \
    --name <app-name> \
    --resource-group <resource-group> \
    --target-port <target-port> \
    --exposed-port <tcp-exposed-port> \
    --transport <transport> \
    --type <external>
    --allow-insecure

az containerapp ingress enable argumenty ruchu przychodzącego:

Opcja Właściwości opis Wartości Wymagania
--type external Zezwalaj na ruch przychodzący do aplikacji z dowolnego miejsca lub ogranicz ruch przychodzący do wewnętrznego środowiska usługi Container Apps. external lub internal Tak
--allow-insecure allowInsecure Zezwalaj na połączenia HTTP z aplikacją. Nie.
--target-port targetPort Port, na który kontener nasłuchuje żądań przychodzących. Ustaw tę wartość na numer portu używany przez kontener. Punkt końcowy ruchu przychodzącego aplikacji jest zawsze uwidaczniony na porcie 443. Tak
--exposed-port exposedPort (Tylko ruch przychodzący TCP) Port dla ruchu przychodzącego TCP. Jeśli external wartość to true, wartość musi być unikatowa w środowisku usługi Container Apps, jeśli ruch przychodzący jest zewnętrzny. Numer portu z 1 do 65535. (nie może być 80 lub 443) Nie.
--transport transport Typ protokołu transportowego. Auto (ustawienie domyślne) wykrywa protokół HTTP/1 lub HTTP/2, http dla protokołu HTTP/1, http2 dla protokołu HTTP/2 dla tcp protokołu TCP. Nie.

Włącz ruch przychodzący dla aplikacji kontenera przy użyciu portalu.

Ruch przychodzący można włączyć podczas tworzenia aplikacji kontenera lub włączyć ruch przychodzący dla istniejącej aplikacji kontenera.

  • Aby skonfigurować ruch przychodzący podczas tworzenia aplikacji kontenera, wybierz pozycję Ruch przychodzący na karcie Konfiguracja aplikacji kreatora tworzenia aplikacji kontenera.
  • Aby skonfigurować ruch przychodzący dla istniejącej aplikacji kontenera, wybierz pozycję Ruch przychodzący z menu Ustawienia strony zasobu aplikacji kontenera.

Włączanie ruchu przychodzącego dla aplikacji kontenera:

Ruch przychodzący można skonfigurować podczas tworzenia aplikacji kontenera przy użyciu witryny Azure Portal.

  1. Ustaw opcję Ruch przychodzący na wartość Włączone.
  2. Skonfiguruj ustawienia ruchu przychodzącego dla aplikacji kontenera.
  3. Wybierz pozycję Ograniczone do środowiska aplikacji kontenera dla ruchu przychodzącego wewnętrznego lub Akceptowanie ruchu z dowolnego miejsca dla ruchu przychodzącego zewnętrznego.
  4. Wybierz typ ruchu przychodzącego: HTTP lub TCP (ruch przychodzący TCP jest dostępny tylko w środowiskach skonfigurowanych za pomocą niestandardowej sieci wirtualnej).
  5. Jeśli wybrano opcję HTTP dla typu ruchu przychodzącego, wybierz opcję Transport: Auto, HTTP/1 lub HTTP/2.
  6. Wybierz pozycję Niezabezpieczone połączenia , jeśli chcesz zezwolić na połączenia HTTP z aplikacją.
  7. Wprowadź port docelowy dla aplikacji kontenera.
  8. W przypadku wybrania opcji TCP dla opcji Transport wprowadź port uwidoczniony dla aplikacji kontenera. Uwidoczniony numer portu może mieć 1 wartość 65535. (nie może być 80 lub 443)

Strona Ustawień ruchu przychodzącego dla aplikacji kontenera umożliwia również konfigurowanie ograniczeń adresów IP. Aby uzyskać informacje na temat konfigurowania ograniczeń adresów IP, zobacz Ograniczenia adresów IP.

Włącz ruch przychodzący dla aplikacji kontenera ingress przy użyciu właściwości konfiguracji. external Ustaw właściwość na true, i ustaw transport właściwości i targetPort . -external Właściwość może być ustawiona na wartość true dla ruchu zewnętrznego lub fałszywego dla ruchu przychodzącego wewnętrznego.

  • transport Ustaw wartość na wartość , auto aby wykryć protokół HTTP/1 lub HTTP/2, http dla protokołu HTTP/1, http2 dla protokołu HTTP/2 lub tcp tcp.
  • targetPort Ustaw wartość na numer portu używany przez kontener. Punkt końcowy ruchu przychodzącego aplikacji jest zawsze uwidaczniony na porcie 443.
  • exposedPort Ustaw właściwość , jeśli typ transportu to tcp port dla ruchu przychodzącego TCP. Wartość musi być unikatowa w środowisku usługi Container Apps, jeśli ruch przychodzący jest zewnętrzny. Numer portu z 1 do 65535. (nie może być 80 lub 443)
{
  ...
  "configuration": {
    "ingress": {
        "external": true,
        "transport": "tcp",
        "targetPort": 80,
        "exposedPort": 8080,
    },
  }
}

Wyłączanie ruchu przychodzącego

Wyłącz ruch przychodzący dla aplikacji kontenera az containerapp ingress przy użyciu polecenia .

az containerapp ingress disable \
    --name <app-name> \
    --resource-group <resource-group> \

Ruch przychodzący dla aplikacji kontenera można wyłączyć przy użyciu portalu.

  1. Wybierz pozycję Ruch przychodzący z menu Ustawienia strony aplikacji kontenera.
  2. Usuń zaznaczenie ustawienia Włączone ruch przychodzący.
  3. Wybierz pozycję Zapisz.

Zrzut ekranu przedstawiający wyłączanie ruchu przychodzącego aplikacji kontenera.

Wyłącz ruch przychodzący dla aplikacji kontenera, pomijając ingress całkowicie właściwość properties.configuration konfiguracji.

Używanie innych portów TCP

Dodatkowe porty TCP można uwidocznić z poziomu aplikacji. Aby dowiedzieć się więcej, zobacz artykuł dotyczący koncepcji ruchu przychodzącego.

Uwaga

Aby korzystać z tej funkcji, musisz mieć rozszerzenie interfejsu wiersza polecenia aplikacji kontenera. Uruchom polecenie az extension add -n containerapp , aby zainstalować najnowszą wersję rozszerzenia interfejsu wiersza polecenia aplikacji kontenera.

Dodanie innych portów TCP można wykonać za pomocą interfejsu wiersza polecenia, odwołując się do pliku YAML przy użyciu konfiguracji portów TCP.

az containerapp create \
    --name <app-name> \
    --resource-group <resource-group> \
    --yaml <your-yaml-file>

Poniżej przedstawiono przykładowy plik YAML, do którego można się odwołać w powyższym poleceniu interfejsu wiersza polecenia. Konfiguracja dodatkowych portów TCP znajduje się w obszarze additionalPortMappings.

location: northcentralus
name: multiport-example
properties:
  configuration:
    activeRevisionsMode: Single
    ingress:
      additionalPortMappings:
      - exposedPort: 21025
        external: false
        targetPort: 1025
      allowInsecure: false
      external: true
      targetPort: 1080
      traffic:
      - latestRevision: true
        weight: 100
      transport: http
  managedEnvironmentId: <env id>
  template:
    containers:
    - image: maildev/maildev
      name: maildev
      resources:
        cpu: 0.25
        memory: 0.5Gi
    scale:
      maxReplicas: 1
      minReplicas: 1
  workloadProfileName: Consumption
type: Microsoft.App/containerApps

Zrzut ekranu przedstawiający dodawanie dodatkowych portów TCP dla ruchu przychodzącego usługi Container Apps za pośrednictwem portalu.

  1. Rozwiń sekcję Dodatkowe porty TCP w bloku Ruch przychodzący.
  2. Dodaj dodatkowe porty TCP, na których aplikacja będzie akceptować ruch w polu Port docelowy. Jeśli port uwidoczniony jest pozostawiony pusty, zostanie ona pobrana z tej samej wartości ustawionej na porcie docelowym.
  3. Zmień pole ruchu przychodzącego zgodnie z potrzebami. Spowoduje to skonfigurowanie miejsca, w którym ruch przychodzący będzie ograniczony do każdego portu.
  4. Po skończeniu kliknij przycisk Zapisz.

Poniższy szablon usługi ARM zawiera przykład sposobu dodawania dodatkowych portów do aplikacji kontenera. Każdy dodatkowy port należy dodać w additionalPortMappings ingress sekcji dla configuration properties aplikacji kontenera. Poniżej przedstawiono przykład:

{
  ...
  "properties": {
    ...
    "configuration": {
      "ingress": {
        ...
        "additionalPortMappings": [
          {
            "external": false
            "targetPort": 80
            "exposedPort": 12000
          }
        ]
      }
    }
  ...
}

Następne kroki