Inkomend verkeer in Azure Container Apps

Met Azure Container Apps kunt u uw container-app beschikbaar maken voor het openbare web, uw virtuele netwerk (VNET) en andere container-apps in uw omgeving door inkomend verkeer in te schakelen. Instellingen voor inkomend verkeer worden afgedwongen via een set regels waarmee de routering van extern en intern verkeer naar uw container-app wordt beheerd. Wanneer u inkomend verkeer inschakelt, hoeft u geen Azure Load Balancer, openbaar IP-adres of andere Azure-resources te maken om binnenkomende HTTP-aanvragen of TCP-verkeer in te schakelen.

Inkomend verkeer ondersteunt:

Voorbeeld van de configuratie van inkomend verkeer met de splitsing van inkomend verkeer tussen twee revisies:

Diagram showing an ingress configuration splitting traffic between two revisions.

Zie Inkomend verkeer configureren voor meer informatie over de configuratie.

Extern en intern inkomend verkeer

Wanneer u inkomend verkeer inschakelt, kunt u kiezen tussen twee typen inkomend verkeer:

  • Extern: accepteert verkeer van zowel het openbare internet als de interne omgeving van uw container-app.
  • Intern: Hiermee staat u alleen interne toegang toe vanuit de omgeving van uw container-app.

Elke container-app in een omgeving kan worden geconfigureerd met verschillende instellingen voor inkomend verkeer. Als u bijvoorbeeld in een scenario met meerdere microservice-apps de beveiliging wilt verhogen, hebt u mogelijk één container-app die openbare aanvragen ontvangt en de aanvragen doorgeeft aan een achtergrondservice. In dit scenario configureert u de openbare container-app met extern inkomend verkeer en de interne container-app met intern inkomend verkeer.

Protocoltypen

Container Apps ondersteunt twee protocollen voor inkomend verkeer: HTTP en TCP.

HTTP

Als HTTP-inkomend verkeer is ingeschakeld, heeft uw container-app het volgende:

  • Ondersteuning voor TLS-beëindiging
  • Ondersteuning voor HTTP/1.1 en HTTP/2
  • Ondersteuning voor WebSocket en gRPC
  • HTTPS-eindpunten die altijd GEBRUIKMAKEN van TLS 1.2 of 1.3, beëindigd op het ingangspunt
  • Eindpunten die poorten 80 (voor HTTP) en 443 (voor HTTPS) beschikbaar maken
    • HTTP-aanvragen naar poort 80 worden standaard automatisch omgeleid naar HTTPS op 443
  • Een FQDN (Fully Qualified Domain Name)
  • Time-out van aanvraag is 240 seconden

HTTP-kopteksten

HTTP-inkomend verkeer voegt headers toe om metagegevens over de clientaanvraag door te geven aan uw container-app. De header wordt bijvoorbeeld X-Forwarded-Proto gebruikt om het protocol te identificeren dat de client heeft gebruikt om verbinding te maken met de Container Apps-service. De volgende tabel bevat de HTTP-headers die relevant zijn voor inkomend verkeer in Container Apps:

Koptekst Beschrijving Waarden
X-Forwarded-Proto Protocol dat door de client wordt gebruikt om verbinding te maken met de Container Apps-service. http of https
X-Forwarded-For Het IP-adres van de client die de aanvraag heeft verzonden.
X-Forwarded-Host De hostnaam die de client heeft gebruikt om verbinding te maken met de Container Apps-service.
X-Forwarded-Client-Cert Het clientcertificaat als clientCertificateMode dit is ingesteld. Door puntkomma's gescheiden lijst met hash, certificaat en keten. Bijvoorbeeld: Hash=....;Cert="...";Chain="...";

TCP

Container Apps ondersteunt andere TCP-protocollen dan HTTP of HTTPS. U kunt bijvoorbeeld TCP-inkomend verkeer gebruiken om een container-app beschikbaar te maken die gebruikmaakt van het Redis-protocol.

Notitie

Extern TCP-inkomend verkeer wordt alleen ondersteund voor Container Apps-omgevingen die gebruikmaken van een aangepast VNET.

Als TCP-inkomend verkeer is ingeschakeld, is uw container-app:

  • Is toegankelijk voor andere container-apps in dezelfde omgeving via de naam (gedefinieerd door de eigenschap in de name Container Apps-resource) en het weergegeven poortnummer.
  • Is extern toegankelijk via de FQDN (Fully Qualified Domain Name) en het weergegeven poortnummer als het inkomend verkeer is ingesteld op 'extern'.

Aanvullende TCP-poorten

Naast de belangrijkste HTTP/TCP-poort voor uw container-apps, kunt u extra TCP-poorten beschikbaar maken om toepassingen in te schakelen die TCP-verbindingen op meerdere poorten accepteren.

Notitie

Voor deze functie is het gebruik van de nieuwste preview-versie van de CLI-extensie voor container-apps vereist.

Het volgende is van toepassing op extra TCP-poorten:

  • Extra TCP-poorten kunnen alleen extern zijn als de app zelf is ingesteld als extern en de container-app een aangepast VNet gebruikt.
  • Alle extern blootgestelde extra TCP-poorten moeten uniek zijn in de hele Container Apps-omgeving. Dit omvat alle externe extra TCP-poorten, externe hoofd-TCP-poorten en 80/443-poorten die worden gebruikt door ingebouwde HTTP-toegangsbeheerobjecten. Als de extra poorten intern zijn, kan dezelfde poort worden gedeeld door meerdere apps.
  • Als er geen weergegeven poort is opgegeven, komt de weergegeven poort standaard overeen met de doelpoort.
  • Elke doelpoort moet uniek zijn en dezelfde doelpoort kan niet worden weergegeven op verschillende weergegeven poorten.
  • Er zijn maximaal 5 extra poorten per app. Als er extra poorten nodig zijn, opent u een ondersteuningsaanvraag.
  • Alleen de hoofdpoort voor inkomend verkeer ondersteunt ingebouwde HTTP-functies zoals CORS en sessieaffiniteit. Wanneer u HTTP boven op de extra TCP-poorten uitvoert, worden deze ingebouwde functies niet ondersteund.

Raadpleeg het artikel over inkomend verkeer voor meer informatie over het inschakelen van extra poorten voor uw container-apps.

Domeinnamen

U kunt uw app op de volgende manieren openen:

  • De standaard FQDN (Fully Qualified Domain Name): Aan elke app in een Container Apps-omgeving wordt automatisch een FQDN toegewezen op basis van het DNS-achtervoegsel van de omgeving. Als u het DNS-achtervoegsel van een omgeving wilt aanpassen, raadpleegt u HET DNS-achtervoegsel van de aangepaste omgeving.
  • Een aangepaste domeinnaam: u kunt een aangepast DNS-domein configureren voor uw Container Apps-omgeving. Zie Aangepaste domeinnamen en certificaten voor meer informatie.
  • De naam van de app: u kunt de app-naam gebruiken voor communicatie tussen apps in dezelfde omgeving.

Zie Locatie om de FQDN voor uw app op te halen.

IP-beperkingen

Container Apps ondersteunt IP-beperkingen voor inkomend verkeer. U kunt regels maken om IP-adressen te configureren die toegang tot uw container-app zijn toegestaan of geweigerd. Zie IP-beperkingen configureren voor meer informatie.

Verificatie

Azure Container Apps biedt ingebouwde verificatie- en autorisatiefuncties om uw externe container-app met inkomend verkeer te beveiligen. Zie Verificatie en autorisatie in Azure Container Apps voor meer informatie.

U kunt uw app configureren ter ondersteuning van clientcertificaten (mTLS) voor verificatie en verkeersversleuteling. Zie Clientcertificaten configureren voor meer informatie.

Zie het netwerkoverzicht voor meer informatie over het gebruik van mTLS voor netwerkversleuteling op omgevingsniveau.

Opsplitsen van verkeer

Met Containers Apps kunt u binnenkomend verkeer splitsen tussen actieve revisies. Wanneer u een splitsregel definieert, wijst u het percentage inkomend verkeer toe om naar verschillende revisies te gaan. Zie Verkeer splitsen voor meer informatie.

Sessieaffiniteit

Sessieaffiniteit, ook wel plaksessies genoemd, is een functie waarmee u alle HTTP-aanvragen van een client kunt routeren naar dezelfde replica van de container-app. Deze functie is handig voor stateful toepassingen die een consistente verbinding met dezelfde replica vereisen. Zie Sessieaffiniteit voor meer informatie.

Cors (Cross Origin Resource Sharing)

Aanvragen die via de browser worden gedaan vanaf een pagina naar een domein dat niet overeenkomt met het oorspronkelijke domein van de pagina, worden standaard geblokkeerd. Om deze beperking te voorkomen voor services die zijn geïmplementeerd in Container Apps, kunt u CROSS-Origin Resource Sharing (CORS) inschakelen.

Zie CORS configureren in Azure Container Apps voor meer informatie.

Volgende stappen