Konfigurace příchozího přenosu dat pro vaši aplikaci v Azure Container Apps
V tomto článku se dozvíte, jak povolit funkce příchozího přenosu dat pro vaši aplikaci kontejneru. Příchozí přenos dat je nastavení pro celou aplikaci. Změny nastavení příchozího přenosu dat platí pro všechny revize současně a negenerují nové revize.
Nastavení příchozího přenosu dat
Můžete nastavit následující vlastnosti šablony příchozího přenosu dat:
Vlastnost | Popis | Hodnoty | Požaduje se |
---|---|---|---|
allowInsecure |
Umožňuje nezabezpečený provoz do vaší aplikace kontejneru. Když nastavíte true požadavky HTTP na port 80, automaticky se přesměrují na port 443 pomocí protokolu HTTPS, což umožňuje nezabezpečená připojení. |
false (výchozí), true povolí nezabezpečená připojení. |
No |
clientCertificateMode |
Režim klientského certifikátu pro ověřování mTLS Ignorovat označuje, že server zahodí klientský certifikát při předávání. Akceptuje, že server předává klientský certifikát, ale nevyžaduje klientský certifikát. Vyžaduje, aby server vyžadoval klientský certifikát. | Required , Accept , Ignore (výchozí) |
No |
customDomains |
Vlastní vazby domény pro názvy hostitelů Container Apps Zobrazení vlastních domén a certifikátů | Pole vazeb | No |
exposedPort |
(Pouze příchozí přenos dat TCP) Port TCP naslouchá. Pokud external ano true , hodnota musí být v prostředí Container Apps jedinečná. |
Číslo portu od 1 do 65535 . (nemůže být 80 nebo 443 ) |
No |
external |
Povolte příchozí přenos dat do vaší aplikace mimo jeho prostředí Container Apps. | true nebo false (výchozí) |
Ano |
ipSecurityRestrictions |
Omezení příchozího přenosu dat IP. Viz Nastavení omezení příchozího přenosu dat IP. | Pole pravidel | No |
stickySessions.affinity |
Povolí spřažení relací. | none (výchozí), sticky |
No |
targetPort |
Port, na který kontejner naslouchá příchozím požadavkům. | Nastavte tuto hodnotu na číslo portu, které kontejner používá. U příchozího přenosu dat HTTP je koncový bod příchozího přenosu dat vaší aplikace vždy vystavený na portu 443 . |
Ano |
traffic |
Rozdělení provozu mezi revizemi rozděluje váhy. | Pole pravidel | No |
transport |
Typ přenosového protokolu. | auto (výchozí) detekuje protokol HTTP/1 nebo HTTP/2 pro http protokol HTTP/1 http2 pro protokol HTTP/2 tcp pro protokol TCP. |
No |
Povolit příchozí přenos dat
Příchozí přenos dat pro vaši aplikaci kontejneru můžete nakonfigurovat pomocí Azure CLI, šablony ARM nebo webu Azure Portal.
Tento az containerapp ingress enable
příkaz povolí příchozí přenos dat pro vaši aplikaci kontejneru. Musíte zadat cílový port a volitelně můžete nastavit vystavený port, pokud je tcp
typ přenosu .
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 příchozího přenosu dat:
Možnost | Vlastnost | Popis | Hodnoty | Požaduje se |
---|---|---|---|---|
--type |
external | Povolte příchozí přenos dat do vaší aplikace odkudkoli nebo omezte příchozí přenos dat do interního prostředí Container Apps. | external nebo internal |
Ano |
--allow-insecure |
allowInsecure | Povolte připojení HTTP k aplikaci. | No | |
--target-port |
targetPort | Port, na který kontejner naslouchá příchozím požadavkům. | Nastavte tuto hodnotu na číslo portu, které kontejner používá. Koncový bod příchozího přenosu dat vaší aplikace je vždy vystavený na portu 443 . |
Ano |
--exposed-port |
exposedPort | (Pouze příchozí přenos dat TCP) Port pro příchozí přenos dat TCP. Pokud external ano true , hodnota musí být v prostředí Container Apps jedinečná, pokud je příchozí přenos dat externí. |
Číslo portu od 1 do 65535 . (nemůže být 80 nebo 443 ) |
No |
--transport |
transport | Typ přenosového protokolu. | auto (výchozí) detekuje protokol HTTP/1 nebo HTTP/2 pro http protokol HTTP/1 http2 pro protokol HTTP/2 tcp pro protokol TCP. |
No |
Povolte příchozí přenos dat pro vaši aplikaci kontejneru pomocí portálu.
Příchozí přenos dat můžete povolit při vytváření aplikace kontejneru nebo můžete pro existující aplikaci kontejneru povolit příchozí přenos dat.
- Pokud chcete při vytváření aplikace kontejneru nakonfigurovat příchozí přenos dat, vyberte na kartě Konfigurace aplikace kontejneru průvodce vytvořením aplikace kontejneru možnost Příchozí přenos dat.
- Pokud chcete nakonfigurovat příchozí přenos dat pro existující aplikaci kontejneru, v nabídce Nastavení na stránce prostředku aplikace kontejneru vyberte Příchozí přenos dat.
Povolení příchozího přenosu dat pro vaši aplikaci kontejneru:
Příchozí přenos dat můžete nakonfigurovat při vytváření aplikace kontejneru pomocí webu Azure Portal.
- Nastavte příchozí přenos dat na Povoleno.
- Nakonfigurujte nastavení příchozího přenosu dat pro vaši aplikaci kontejneru.
- Vyberte Omezené na prostředí Container Apps pro interní příchozí přenos dat nebo příjem provozu z libovolného místa pro externí příchozí přenos dat.
- Vyberte typ příchozího přenosu dat: HTTP nebo TCP (příchozí přenos dat TCP je k dispozici pouze v prostředích nakonfigurovaných pro vlastní virtuální síť).
- Pokud je pro typ příchozího přenosu dat vybrán protokol HTTP, vyberte možnost Transport: Auto, HTTP/1 nebo HTTP/2.
- Pokud chcete povolit připojení HTTP k aplikaci, vyberte Nezabezpečená připojení .
- Zadejte cílový port pro vaši aplikaci kontejneru.
- Pokud jste jako možnost Přenos vybrali protokol TCP, zadejte port Vystavený pro vaši aplikaci kontejneru. Vystavené číslo portu může být
1
65535
. (nemůže být80
nebo443
)
Na stránce nastavení příchozího přenosu dat pro vaši aplikaci kontejneru můžete také nakonfigurovat omezení PROTOKOLU IP. Informace o konfiguraci omezení IP adres najdete v tématu Omezení protokolu IP.
Povolte příchozí přenos dat pro vaši aplikaci kontejneru ingress
pomocí vlastnosti konfigurace. external
Nastavte vlastnost na true
a nastavte své transport
a targetPort
vlastnosti.
-external
vlastnost může být nastavena na hodnotu true pro externí nebo false pro interní příchozí přenos dat.
transport
Nastavte na to, abyauto
se zjistilo HTTP/1 nebo HTTP/2,http
pro HTTP/1,http2
HTTP/2 nebotcp
TCP.targetPort
Nastavte číslo portu, které kontejner používá. Koncový bod příchozího přenosu dat vaší aplikace je vždy vystavený na portu443
.exposedPort
Nastavte vlastnost, pokud typ přenosu jetcp
na port pro příchozí přenos tcp. Hodnota musí být v prostředí Container Apps jedinečná, pokud je příchozí přenos dat externí. Číslo portu od1
do65535
. (nemůže být80
nebo443
)
{
...
"configuration": {
"ingress": {
"external": true,
"transport": "tcp",
"targetPort": 80,
"exposedPort": 8080,
},
}
}
Zakázání příchozího přenosu dat
Pomocí příkazu zakažte příchozí přenos dat pro vaši aplikaci kontejneru az containerapp ingress
.
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
Příchozí přenos dat pro aplikaci kontejneru můžete zakázat pomocí portálu.
- V nabídce Nastavení stránky aplikace kontejneru vyberte Příchozí přenos dat.
- Zrušte výběr nastavení Povoleno příchozího přenosu dat.
- Zvolte Uložit.
Zakažte příchozí přenos dat pro vaši aplikaci kontejneru tak, že zcela vynecháte ingress
vlastnost properties.configuration
konfigurace.
Použití jiných portů TCP
Z aplikace můžete zveřejnit další porty TCP. Další informace najdete v článku o konceptu příchozího přenosu dat.
Poznámka:
Pokud chcete tuto funkci použít, musíte mít rozšíření rozhraní příkazového řádku pro aplikace typu kontejner. Spusťte spuštění az extension add -n containerapp
, abyste nainstalovali nejnovější verzi rozšíření rozhraní příkazového řádku pro aplikace kontejneru.
Přidáním dalších portů TCP je možné provádět prostřednictvím rozhraní příkazového řádku odkazováním na soubor YAML s konfigurací portů TCP.
az containerapp create \
--name <app-name> \
--resource-group <resource-group> \
--yaml <your-yaml-file>
Následuje příklad souboru YAML, na který můžete odkazovat ve výše uvedeném příkazu CLI. Konfigurace pro další porty TCP je pod 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
- V okně Příchozí přenos dat rozbalte část Další porty TCP.
- Přidejte další porty TCP, na které bude vaše aplikace přijímat provoz v poli Cílový port . Pokud je vystavený port prázdný, převezme se stejná hodnota nastavená na cílovém portu.
- Podle potřeby změňte pole příchozího přenosu dat . Tím se nakonfiguruje, kde se provoz příchozího přenosu dat omezí na každý port.
- Jakmile budete hotoví, klikněte na Uložit.
Následující šablona ARM obsahuje příklad přidání dalších portů do kontejnerových aplikací. Každý další port by se měl přidat v additionalPortMappings
rámci oddílu ingress
pro properties
configuration
aplikaci kontejneru. Následuje příklad:
{
...
"properties": {
...
"configuration": {
"ingress": {
...
"additionalPortMappings": [
{
"external": false
"targetPort": 80
"exposedPort": 12000
}
]
}
}
...
}