Příchozí přenos dat v Azure Container Apps
Azure Container Apps umožňuje zveřejnit aplikaci kontejneru pro veřejný web, virtuální síť a další kontejnerové aplikace v rámci vašeho prostředí povolením příchozího přenosu dat. Nastavení příchozího přenosu dat se vynucuje prostřednictvím sady pravidel, která řídí směrování externího a interního provozu do vaší aplikace kontejneru. Pokud povolíte příchozí přenos dat, nemusíte vytvářet Azure Load Balancer, veřejnou IP adresu ani jiné prostředky Azure, abyste povolili příchozí požadavky HTTP nebo provoz TCP.
Příchozí přenos dat podporuje:
- Externí a interní příchozí přenos dat
- Typy příchozího přenosu dat HTTP a TCP
- Názvy domén
- Omezení IP adres
- Authentication
- Rozdělení provozu mezi revizemi
- Spřažení relací
Příklad konfigurace příchozího přenosu dat znázorňující rozdělení příchozího přenosu dat mezi dvě revize:
Podrobnosti o konfiguraci najdete v tématu Konfigurace příchozího přenosu dat.
Externí a interní příchozí přenos dat
Když povolíte příchozí přenos dat, můžete si vybrat mezi dvěma typy příchozího přenosu dat:
- Externí: Přijímá provoz z veřejného internetu i z interního prostředí vaší aplikace kontejneru.
- Interní: Povoluje pouze interní přístup z prostředí vaší aplikace kontejneru.
Každá aplikace kontejneru v prostředí je možné nakonfigurovat s různými nastaveními příchozího přenosu dat. Například ve scénáři s několika aplikacemi mikroslužeb můžete zvýšit zabezpečení, že máte jednu aplikaci typu kontejner, která přijímá veřejné požadavky a předává požadavky do služby na pozadí. V tomto scénáři byste nakonfigurovali veřejně přístupnou aplikaci kontejneru s externím příchozím přenosem dat a interní kontejnerovou aplikací s interním příchozím přenosem dat.
Typy protokolů
Container Apps podporuje dva protokoly pro příchozí přenos dat: HTTP a TCP.
HTTP
S povoleným příchozím přenosem dat HTTP má vaše aplikace kontejneru:
- Podpora ukončení protokolu TLS
- Podpora pro HTTP/1.1 a HTTP/2
- Podpora pro WebSocket a gRPC
- Koncové body HTTPS, které vždy používají protokol TLS 1.2 nebo 1.3, se ukončí v bodě příchozího přenosu dat.
- Koncové body, které zpřístupňují porty 80 (pro HTTP) a 443 (pro HTTPS)
- Ve výchozím nastavení se požadavky HTTP na port 80 automaticky přesměrují na HTTPS dne 443.
- Plně kvalifikovaný název domény (FQDN)
- Časový limit požadavku je 240 sekund.
Záhlaví HTTP
Příchozí přenos dat HTTP přidává hlavičky pro předávání metadat o požadavku klienta do vaší aplikace kontejneru. Hlavička X-Forwarded-Proto
se například používá k identifikaci protokolu, který klient použil pro připojení ke službě Container Apps. Následující tabulka uvádí hlavičky HTTP, které jsou relevantní pro příchozí přenos dat v Container Apps:
Hlavička | Popis | Hodnoty |
---|---|---|
X-Forwarded-Proto |
Protokol používaný klientem pro připojení ke službě Container Apps | http nebo https |
X-Forwarded-For |
IP adresa klienta, který požadavek odeslal. | |
X-Forwarded-Host |
Název hostitele, který klient použil k připojení ke službě Container Apps. | |
X-Forwarded-Client-Cert |
Klientský certifikát, pokud clientCertificateMode je nastavený. |
Středník oddělený seznam hodnot Hash, Cert a Chain. Příklad: Hash=....;Cert="...";Chain="..."; |
TCP
Container Apps podporuje jiné protokoly založené na protokolu TCP než HTTP nebo HTTPS. Příchozí přenos dat TCP můžete například použít k zveřejnění aplikace kontejneru, která používá protokol Redis.
Poznámka:
Externí příchozí přenos dat TCP se podporuje jenom pro prostředí Container Apps, která používají vlastní virtuální síť. Příchozí přenos dat TCP není podporován pro aplikace, které přijímají příchozí provoz prostřednictvím privátního koncového bodu.
S povoleným příchozím přenosem dat TCP vaše aplikace kontejneru:
- Je přístupný pro jiné kontejnerové aplikace ve stejném prostředí prostřednictvím jeho názvu (definovaného
name
vlastností v prostředku Container Apps) a čísla vystaveného portu. - Je přístupná externě prostřednictvím plně kvalifikovaného názvu domény (FQDN) a vystaveného čísla portu, pokud je příchozí přenos dat nastavený na
external
.
Další porty TCP
Kromě hlavního portu HTTP/TCP pro vaše kontejnerové aplikace můžete vystavit další porty TCP, abyste umožnili aplikacím, které přijímají připojení TCP na více portech.
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.
Následující platí pro další porty TCP:
- Další porty TCP můžou být externí jenom v případě, že je samotná aplikace nastavená jako externí a aplikace kontejneru používá vlastní virtuální síť.
- Všechny externě zveřejněné další porty TCP musí být jedinečné v celém prostředí Container Apps. To zahrnuje všechny externí další porty TCP, externí hlavní porty TCP a porty 80/443 používané integrovaným příchozím přenosem dat HTTP. Pokud jsou další porty interní, může stejný port sdílet více aplikací.
- Pokud není k dispozici vystavený port, zobrazí se ve výchozím nastavení port, který odpovídá cílovému portu.
- Každý cílový port musí být jedinečný a stejný cílový port se nedá vystavit na různých vystavených portech.
- Pro každou aplikaci je maximálně pět dalších portů. Pokud jsou vyžadovány další porty, otevřete žádost o podporu.
- Integrovaný port HTTP, jako je CORS a spřažení relací, podporuje pouze hlavní port příchozího přenosu dat. Při spouštění protokolu HTTP nad dalšími porty TCP se tyto integrované funkce nepodporují.
Názvy domén
K aplikaci se dostanete následujícími způsoby:
- Výchozí plně kvalifikovaný název domény (FQDN): Každá aplikace v prostředí Container Apps se automaticky přiřadí plně kvalifikovaný název domény na základě přípony DNS prostředí. Pokud chcete přizpůsobit příponu DNS prostředí, přečtěte si téma Vlastní přípona DNS prostředí.
- Vlastní název domény: Můžete nakonfigurovat vlastní doménu DNS pro vaše prostředí Container Apps. Další informace naleznete v tématu Vlastní názvy domén a certifikáty.
- Název aplikace: Název aplikace můžete použít ke komunikaci mezi aplikacemi ve stejném prostředí.
Pokud chcete získat plně kvalifikovaný název domény pro vaši aplikaci, přečtěte si téma Umístění.
Omezení IP adres
Container Apps podporuje omezení IP pro příchozí přenos dat. Můžete vytvořit pravidla pro konfiguraci IP adres, které mají povolený nebo zakázaný přístup k vaší aplikaci kontejneru. Další informace najdete v tématu Konfigurace omezení IP adres.
Ověřování
Azure Container Apps poskytuje integrované funkce ověřování a autorizace pro zabezpečení externí aplikace kontejneru s povoleným příchozím přenosem dat. Další informace najdete v tématu Ověřování a autorizace v Azure Container Apps.
Aplikaci můžete nakonfigurovat tak, aby podporovala klientské certifikáty (mTLS) pro ověřování a šifrování provozu. Další informace naleznete v tématu Konfigurace klientských certifikátů.
Podrobnosti o tom, jak používat šifrování sítě na úrovni prostředí peer-to-peer, najdete v přehledu sítí.
Rozdělení provozu
Kontejnerové aplikace umožňují rozdělit příchozí provoz mezi aktivní revize. Když definujete pravidlo rozdělení, přiřadíte procento příchozího provozu, aby se přešlo do různých revizí. Další informace najdete v tématu Rozdělení provozu.
Spřažení relací
Spřažení relací, označované také jako rychlé relace, je funkce, která umožňuje směrovat všechny požadavky HTTP z klienta do stejné repliky aplikace kontejneru. Tato funkce je užitečná pro stavové aplikace, které vyžadují konzistentní připojení ke stejné replice. Další informace naleznete v tématu spřažení relace.
Sdílení prostředků mezi zdroji (CORS)
Ve výchozím nastavení jsou všechny požadavky provedené v prohlížeči ze stránky do domény, která neodpovídá původní doméně stránky, blokované. Abyste se vyhnuli tomuto omezení pro služby nasazené do Container Apps, můžete povolit sdílení prostředků mezi zdroji (CORS).
Další informace najdete v tématu Konfigurace CORS v Azure Container Apps.