Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak włączyć funkcje ingress dla aplikacji kontenerowej. Ingress jest ustawieniem obejmującym całą aplikację. Zmiany ustawień ruchu przychodzącego mają zastosowanie do wszystkich poprawek jednocześnie i nie generują nowych poprawek.
Ustawienia Ingress
Można ustawić następujące właściwości szablonu ingress:
| Właściwości | Opis | Wartości | Wymagane |
|---|---|---|---|
allowInsecure |
Zezwala na niezabezpieczony ruch do aplikacji kontenerowej. 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 wiązań | Nie. |
exposedPort |
(Tylko ruch przychodzący TCP) Port TCP nasłuchuje. Jeśli wartość external to true, musi być ona 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 IP. Zobacz Konfigurowanie ograniczeń ruchu przychodzącego dla adresów IP | Tablica reguł | Nie. |
stickySessions.affinity |
Włącza koligację sesji. |
none (wartość domyślna), sticky |
Nie. |
targetPort |
Port, na którym Twoja aplikacja kontenera nasłuchuje żądań przychodzących. | Ustaw tę wartość na numer portu używany przez aplikację kontenera. W przypadku ruchu wejściowego HTTP punkt końcowy ruchu wejściowego aplikacji jest zawsze udostępniany na porcie 443. |
Tak |
traffic |
Podział ruchu między wersjami. | 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 korzysta z sond kondycji TCP. Aby uzyskać więcej informacji, zobacz sondy kondycji.
Włącz ruch przychodzący
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 wejściowe:
| Opcja | Właściwości | Opis | Wartości | Wymagane |
|---|---|---|---|---|
--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 |
zezwalaj na niezabezpieczone połączenia | Zezwalaj na połączenia HTTP z aplikacją. | Nie. | |
--target-port |
port docelowy | Port, na którym kontener nasłuchuje przychodzących żądań. | 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 |
Otwarty port | (Tylko ruch przychodzący TCP) Port dla ruchu przychodzącego TCP. Jeśli external ma wartość true, wartość musi być unikalna w środowisku 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 HTTP/1 lub HTTP/2, http dla HTTP/1, http2 dla HTTP/2, tcp dla TCP. |
Nie. |
Uwaga
W środowisku wewnętrznym nie wystawia --type external Twojej aplikacji na dostęp do publicznego internetu, ponieważ środowisko nie ma publicznego punktu końcowego. Dzięki temu aplikacja jest dostępna z Twojej wirtualnej sieci przez wewnętrzny load balancer środowiska. Używanie --type internal ogranicza aplikację do innych kontenerowych aplikacji w tym samym środowisku, a klienci w innych częściach twojej sieci wirtualnej otrzymują odpowiedź HTTP 404. Więcej informacji znajdziesz w artykule Jak widoczność wejścia oddziałuje z typem środowiska.
Włącz ruch przychodzący dla aplikacji kontenerowej za pomocą 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 w kreatorze 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
Możesz skonfigurować dostęp przychodzący podczas tworzenia aplikacji kontenerowej przy użyciu portalu Azure.
Ustaw Ingress na Włączono.
Skonfiguruj ustawienia wejścia dla aplikacji kontenerowej.
Wybierz opcję Ograniczone do środowiska usługi Container Apps w przypadku ruchu przychodzącego wewnętrznego lub Akceptowanie ruchu z dowolnego źródła w przypadku ruchu przychodzącego zewnętrznego.
W środowisku wewnętrznym przyjmowanie ruchu z dowolnego miejsca nie wystawia Twojej aplikacji na dostęp do publicznego internetu. Dzięki temu aplikacja jest dostępna z Twojej wirtualnej sieci przez wewnętrzny load balancer środowiska. Więcej informacji znajdziesz w artykule Jak widoczność wejścia oddziałuje z typem środowiska.
Wybierz typ ruchu przychodzącego: HTTP lub TCP (ruch przychodzący TCP jest dostępny tylko w środowiskach skonfigurowanych z siecią wirtualną).
Jeśli wybrano opcję HTTP dla typu ruchu przychodzącego, wybierz opcję Transport: Auto, HTTP/1 lub HTTP/2.
Wybierz pozycję Niezabezpieczone połączenia , jeśli chcesz zezwolić na połączenia HTTP z aplikacją.
Wprowadź port docelowy dla aplikacji kontenera.
W przypadku wybrania opcji TCP dla opcji Transport wprowadź port uwidoczniony dla aplikacji kontenera. Udostępniony numer portu może mieć wartość od
1do65535. (nie może być80lub443)
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 kontenerowej, używając właściwości konfiguracji ingress. Ustaw właściwość external na true i ustaw właściwości transport i targetPort.
-
externalUstaw właściwość na wartość true dla ruchu przychodzącego zewnętrznego lub false dla ruchu przychodzącego wewnętrznego. - Ustaw
transportnaauto, aby wykrywać HTTP/1 lub HTTP/2,httpdla HTTP/1,http2dla HTTP/2 lubtcpdla TCP. - Ustaw
targetPortna numer portu, którego używa kontener. Punkt końcowy ruchu przychodzącego aplikacji jest zawsze uwidaczniony na porcie443. - Ustaw właściwość
exposedPort, jeśli typ transportu totcp, na port dla przychodzącego ruchu TCP. Wartość musi być unikalna w środowisku Container Apps, jeśli ruch przychodzący jest ustawiony jako zewnętrzny. Numer portu z1do65535. (nie może być80lub443)
{
...
"configuration": {
"ingress": {
"external": true,
"transport": "tcp",
"targetPort": 80,
"exposedPort": 8080,
},
}
}
Wyłącz Ingress
Wyłącz ruch wejściowy dla aplikacji kontenerowej przy użyciu polecenia az containerapp ingress.
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
Możesz wyłączyć ingress dla swojej aplikacji kontenera, używając portalu.
- Wybierz pozycję Ingress z menu Settings na stronie aplikacji kontenera.
- Odznacz ustawienie IngressWłączone.
- Wybierz pozycję Zapisz.
Wyłącz ruch przychodzący dla aplikacji kontenerowej, całkowicie pomijając właściwość konfiguracji ingress w elemencie properties.configuration.
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
- Rozwiń sekcję Dodatkowe porty TCP w bloku Ingress.
- 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.
- Zmień pole „Ruch przychodzący” w razie potrzeby. To pole umożliwia skonfigurowanie miejsca, w którym ruch przychodzący jest ograniczony do każdego portu.
- 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 additionalPortMappings w ingress 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
}
]
}
}
...
}