Udostępnij przez


Konfigurowanie dostępu 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. Gdy ustawiono true, żądania HTTP do portu 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. Ignore wskazuje, że serwer odrzuca certyfikat klienta podczas przekazywania dalej. Accept wskazuje serwer przekazuje certyfikat klienta, ale nie wymaga certyfikatu klienta. Require 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 aplikacji kontenera nasłuchuje żądań przychodzących. Ustaw tę wartość na numer portu używany przez aplikację kontenera. 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 HTTP/1 lub HTTP/2, http dla HTTP/1, http2 dla HTTP/2, tcp dla TCP. Nie.

Automatyczne wykrywanie portów

Jeśli aplikacja kontenera ma włączony ruch przychodzący HTTP i nie ustawisz portu docelowego, usługa Azure Container Apps automatycznie wykrywa port docelowy, przeskanując wszystkie porty nasłuchiwania w kontenerze. Jeśli wykryto tylko jeden port, ten port jest ustawiony jako port docelowy dla aplikacji kontenera. Jeśli wykryto więcej niż jeden port, aplikacja kontenera nie ustawia automatycznie portu docelowego i musisz ręcznie ustawić port docelowy.

  • Automatyczne wykrywanie portów działa tylko dla ruchu HTTP, a nie ruchu TCP.
  • Jeśli masz sondy stanu HTTP nasłuchujące na portach 80 lub 443, ta konfiguracja może zakłócać automatyczne wykrywanie portów. Domyślna konfiguracja ruchu przychodzącego używa sond kondycji TCP. Aby uzyskać więcej informacji, zobacz sondy kondycji.

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.

Polecenie az containerapp ingress enable włącza 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 zewnętrzny 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 (zezwalać) Zezwalaj na połączenia HTTP z aplikacją. Nie.
--target-port port docelowy 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 Odsłonięty Port (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 z siecią wirtualną).
  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 Ustaw właściwość na wartość true dla ruchu przychodzącego zewnętrznego lub false 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> \

Możesz wyłączyć ingress dla swojej aplikacji kontenera, używając 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 uzyskać więcej informacji, zobacz artykuł dotyczący koncepcji ruchu przychodzącego.

Uwaga

Aby użyć tej funkcji, potrzebujesz rozszerzenia interfejsu wiersza polecenia aplikacji kontenera. Uruchom polecenie az extension add -n containerapp , aby zainstalować najnowszą wersję rozszerzenia interfejsu wiersza polecenia aplikacji kontenera.

Dodatkowe porty TCP można dodać za pośrednictwem interfejsu linii poleceń, odwołując się do pliku YAML z konfiguracjami portów TCP.

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

Poniższy przykład przedstawia plik YAML, do którego można się odwołać w poprzednim 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, do których aplikacja akceptuje ruch w polu Port docelowy . Jeśli port uwidoczniony zostanie pusty, użyje tej samej wartości co port docelowy.
  3. Zmień pole ruchu przychodzącego zgodnie z potrzebami. To pole umożliwia skonfigurowanie miejsca, w którym ruch przychodzący jest ograniczony do każdego portu.
  4. Po skończeniu kliknij przycisk Zapisz.

Poniższy szablon usługi ARM zawiera przykład dodawania dodatkowych portów do aplikacji kontenera. Dodaj każdy dodatkowy port w sekcji ingress w additionalPortMappings dla configuration w properties aplikacji kontenera. W poniższym przykładzie pokazano, jak dodać dodatkowe porty:

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

Następne kroki