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.
- Ustaw opcję Ruch przychodzący na wartość Włączone.
- Skonfiguruj ustawienia ruchu przychodzącego dla aplikacji kontenera.
- 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.
- Wybierz typ ruchu przychodzącego: HTTP lub TCP (ruch przychodzący TCP jest dostępny tylko w środowiskach skonfigurowanych za pomocą niestandardowej sieci wirtualnej).
- 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. Uwidoczniony numer portu może mieć
1
wartość65535
. (nie może być80
lub443
)
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 lubtcp
tcp.targetPort
Ustaw wartość na numer portu używany przez kontener. Punkt końcowy ruchu przychodzącego aplikacji jest zawsze uwidaczniony na porcie443
.exposedPort
Ustaw właściwość , jeśli typ transportu totcp
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 z1
do65535
. (nie może być80
lub443
)
{
...
"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.
- Wybierz pozycję Ruch przychodzący z menu Ustawienia strony aplikacji kontenera.
- Usuń zaznaczenie ustawienia Włączone ruch przychodzący.
- Wybierz pozycję Zapisz.
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
- Rozwiń sekcję Dodatkowe porty TCP w bloku Ruch przychodzący.
- 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.
- 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.
- 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
}
]
}
}
...
}