Sdílet prostřednictvím


Příchozí přenos dat v Azure Container Apps

Azure Container Apps umožňuje zpřístupnit vaši kontejnerovou aplikaci na internet, vaši virtuální síť (VNET) a dalším kontejnerovým aplikacím ve vašem prostředí povolením přístupu. Nastavení vstupního provozu se vynucuje prostřednictvím sady pravidel, která řídí směrování externího a interního provozu do vaší kontejnerové aplikace. Když povolíte příchozí přenos dat, nemusíte vytvářet Azure Load Balancer, veřejnou IP adresu ani jiné prostředky Azure, abyste umožnili příchozí požadavky HTTP nebo přenosy TCP (Transmission Control Protocol).

Ingress podporuje:

Příklad konfigurace ingressu znázorňující rozdělení ingressu mezi dvě revize:

Diagram znázorňující konfiguraci příchozího provozu, která rozděluje provoz mezi dvě revize.

Podrobnosti o konfiguraci najdete v tématu Konfigurace příchozího přenosu dat.

Externí a interní vstup

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á kontejnerová aplikace v prostředí může být nakonfigurována 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 HTTP vstupem má vaše kontejnerová aplikace:

  • Podpora ukončení protokolu TLS (Transport Layer Security)
  • 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 na port 443.
  • Plně kvalifikovaný název domény (FQDN)
  • Časový limit požadavku je 240 sekund.

Záhlaví HTTP

HTTP vstup přidává hlavičky, které předávají metadata o požadavku klienta do vaší kontejnerové aplikace. 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 vstupní provoz 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. Tato hodnota se přepíše, pokud je odeslána klientem.
X-Forwarded-For IP adresy klienta nebo zprostředkujících proxy serverů, které požadavek odeslaly. IP adresy odesílatelů. Pokud je zadaný v počátečním požadavku, připojí se k němu. Azure Container Apps poskytuje pouze ip adresu úplně vpravo. Aby se zabránilo falšování identity PROTOKOLU IP, musí uživatel ověřit všechny ostatní hodnoty.
X-Forwarded-Client-Cert Klientský certifikát, pokud clientCertificateMode je nastavený. Seznam hodnot Hash, Cert a Chain oddělených středníkem. Například: Hash=....;Cert="...";Chain="...";. Tato hodnota se přepíše, pokud je odeslána klientem.

protokol 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 ke zpřístupnění kontejnerové aplikace, která používá Redis protokol.

Poznámka:

Externí příchozí přenos dat TCP se podporuje jenom pro prostředí Container Apps, která používají virtuální síť.

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 názvu (definovaného vlastností name v prostředku Container Apps) a čísla otevřeného portu.
  • Je přístupná externě prostřednictvím plně kvalifikovaného názvu domény (FQDN) a vystaveného čísla portu, pokud je ingress 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 az extension add -n containerapp , abyste nainstalovali nejnovější verzi rozšíření příkazového řádku pro kontejnerové aplikace.

Následující platí pro další porty TCP:

  • Více portů TCP může být externí jenom v případě, že je samotná aplikace nastavená jako externí a aplikace kontejneru používá virtuální síť.

  • Všechny externě vystavené nadbytečné 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ůžete stejný port sdílet mezi více aplikacemi.

  • Pokud není k dispozici vystavený port, výchozí vystavený port 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.

  • Pouze hlavní vstupní port podporuje integrované funkce HTTP, jako je CORS a spřažení relací. Při spouštění protokolu HTTP nad extra porty TCP se tyto integrované funkce nepodporují.

  • Číslo 36985 portu je vyhrazené pro interní kontroly stavu a není k dispozici pro aplikace TCP ani extra vystavené porty v aplikacích HTTP.

Další informace o povolení dalších portů najdete v tématu Konfigurace příchozího přenosu dat pro vaši aplikaci.

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 (Domain Name System) prostředí. Tato přípona je určena proměnnouCONTAINER_APP_ENV_DNS_SUFFIX 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, podívejte se na 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í kontejnerové aplikace se zapnutým přístupem. 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 tématu Konfigurace 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 procenta příchozího provozu, aby směřovalo do různých revizí. Další informace najdete v tématu Rozdělení provozu.

Spřažení relací

Spřažení relací, také známé jako lepkavé relace, je funkce, která umožňuje směrovat všechny požadavky HTTP od klienta do stejné kopie aplikace v 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 afinitu relace.

Sdílení prostředků mezi různými zdroji (CORS - Cross-Origin Resource Sharing)

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.

Další kroky