Konfigurera ingress för din app i Azure Container Apps
Den här artikeln visar hur du aktiverar ingressfunktioner för din containerapp. Ingress är en programomfattande inställning. Ändringar i ingressinställningarna gäller för alla revisioner samtidigt och genererar inte nya revisioner.
Ingressinställningar
Du kan ange följande egenskaper för ingressmallar:
Property | Beskrivning | Värden | Obligatoriskt |
---|---|---|---|
allowInsecure |
Tillåter osäker trafik till containerappen. När det är inställt på true HTTP-begäranden till port 80 omdirigeras inte automatiskt till port 443 med HTTPS, vilket tillåter osäkra anslutningar. |
false (standard) true aktiverar osäkra anslutningar |
Nej |
clientCertificateMode |
Klientcertifikatläge för mTLS-autentisering. Ignorera anger att servern släpper klientcertifikatet vid vidarebefordran. Accept anger att servern vidarebefordrar klientcertifikatet men inte kräver något klientcertifikat. Kräv anger att servern kräver ett klientcertifikat. | Required , Accept , Ignore (standard) |
Nej |
customDomains |
Anpassade domänbindningar för Container Apps värdnamn. Se Anpassade domäner och certifikat | En matris med bindningar | Nej |
exposedPort |
(Endast TCP-ingress) Port-TCP lyssnar på. Om external är true måste värdet vara unikt i Container Apps-miljön. |
Ett portnummer från 1 till 65535 . (kan inte vara 80 eller 443 ) |
Nej |
external |
Tillåt ingress till din app utanför containerappmiljön. | true eller false (standard) |
Ja |
ipSecurityRestrictions |
Begränsningar för IP-ingress. Se Konfigurera begränsningar för IP-ingress | En matris med regler | Nej |
stickySessions.affinity |
Aktiverar sessionstillhörighet. | none (standard) sticky |
Nej |
targetPort |
Porten som containern lyssnar på efter inkommande begäranden. | Ange det här värdet till det portnummer som containern använder. För HTTP-ingress exponeras programmets ingressslutpunkt alltid på porten 443 . |
Ja |
traffic |
Trafikdelningsvikter uppdelade mellan revisioner. | En matris med regler | Nej |
transport |
Typ av transportprotokoll. | automatiskt (standard) identifierar HTTP/1 eller HTTP/2, http för HTTP/1, http2 för HTTP/2, tcp för TCP. |
Nej |
Inaktivera ingress
Du kan konfigurera ingress för din containerapp med hjälp av Azure CLI, en ARM-mall eller Azure-portalen.
Det här az containerapp ingress enable
kommandot aktiverar ingress för din containerapp. Du måste ange målporten och du kan också ange den exponerade porten om din transporttyp är 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
ingressargument:
Alternativ | Property | Beskrivning | Värden | Obligatoriskt |
---|---|---|---|---|
--type |
extern | Tillåt ingress till din app var som helst eller begränsa ingressen till den interna Container Apps-miljön. | external eller internal |
Ja |
--allow-insecure |
allowInsecure | Tillåt HTTP-anslutningar till din app. | Nej | |
--target-port |
targetPort | Porten som containern lyssnar på efter inkommande begäranden. | Ange det här värdet till det portnummer som containern använder. Programmets ingressslutpunkt exponeras alltid på port 443 . |
Ja |
--exposed-port |
exposedPort | (Endast TCP-ingress) En port för TCP-ingress. Om external är true måste värdet vara unikt i Container Apps-miljön om ingressen är extern. |
Ett portnummer från 1 till 65535 . (kan inte vara 80 eller 443 ) |
Nej |
--transport |
transport | Typ av transportprotokoll. | automatiskt (standard) identifierar HTTP/1 eller HTTP/2, http för HTTP/1, http2 för HTTP/2, tcp för TCP. |
Nej |
Aktivera ingress för din containerapp med hjälp av portalen.
Du kan aktivera inkommande när du skapar din containerapp, eller så kan du aktivera ingress för en befintlig containerapp.
- Om du vill konfigurera ingress när du skapar din containerapp väljer du Ingress på fliken Appkonfiguration i guiden skapa containerapp.
- Om du vill konfigurera ingress för en befintlig containerapp väljer du Ingress på menyn Inställningar på resurssidan för containerappen.
Aktivera ingress för din containerapp:
Du kan konfigurera ingress när du skapar din containerapp med hjälp av Azure-portalen.
- Ange Ingress till Aktiverad.
- Konfigurera ingressinställningarna för containerappen.
- Välj Begränsad till Container Apps Environment för intern ingress eller Acceptera trafik var som helst för extern ingress.
- Välj ingresstyp: HTTP eller TCP (TCP-ingress är endast tillgängligt i miljöer som konfigurerats med ett anpassat virtuellt nätverk).
- Om HTTP har valts för ingresstypen väljer du Transport: Auto, HTTP/1 eller HTTP/2.
- Välj Osäkra anslutningar om du vill tillåta HTTP-anslutningar till din app.
- Ange målporten för containerappen.
- Om du har valt TCP för alternativet Transport anger du den exponerade porten för containerappen. Det exponerade portnumret kan vara
1
till65535
. (kan inte vara80
eller443
)
På sidan Ingress-inställningar för containerappen kan du också konfigurera IP-begränsningar. Information om hur du konfigurerar IP-begränsning finns i IP-begränsningar.
Aktivera ingress för containerappen med hjälp av konfigurationsegenskapen ingress
. external
Ange egenskapen till true
och ange dina transport
egenskaper och targetPort
.
-external
egenskapen kan anges till true för extern eller falsk för intern ingress.
transport
Ange tillauto
för att identifiera HTTP/1 eller HTTP/2,http
för HTTP/1,http2
FÖR HTTP/2 ellertcp
för TCP.targetPort
Ange till det portnummer som containern använder. Programmets ingressslutpunkt exponeras alltid på port443
.- Ange egenskapen
exposedPort
om transporttypen ärtcp
till en port för TCP-ingress. Värdet måste vara unikt i Container Apps-miljön om ingressen är extern. Ett portnummer från1
till65535
. (kan inte vara80
eller443
)
{
...
"configuration": {
"ingress": {
"external": true,
"transport": "tcp",
"targetPort": 80,
"exposedPort": 8080,
},
}
}
Inaktivera ingress
Inaktivera ingress för containerappen az containerapp ingress
med hjälp av kommandot .
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
Du kan inaktivera ingress för din containerapp med hjälp av portalen.
- Välj Ingress på menyn Inställningar på sidan containerapp.
- Avmarkera inställningen Ingångsaktiverad.
- Välj Spara.
Inaktivera ingress för containerappen genom att utelämna konfigurationsegenskapen ingress
helt och properties.configuration
hållet.
Använda andra TCP-portar
Du kan exponera ytterligare TCP-portar från ditt program. Mer information finns i artikeln om ingresskoncept.
Kommentar
Om du vill använda den här funktionen måste du ha CLI-tillägget för containerappar. Kör az extension add -n containerapp
för att installera den senaste versionen av CLI-tillägget för containerappar.
Du kan lägga till andra TCP-portar via CLI genom att referera till en YAML-fil med dina TCP-portkonfigurationer.
az containerapp create \
--name <app-name> \
--resource-group <resource-group> \
--yaml <your-yaml-file>
Följande är en YAML-exempelfil som du kan referera till i CLI-kommandot ovan. Konfigurationen för de ytterligare TCP-portarna finns under 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
Den här funktionen stöds inte i Azure-portalen.
Följande ARM-mall innehåller ett exempel på hur du kan lägga till ytterligare portar i dina containerappar. Varje ytterligare port ska läggas till under additionalPortMappings
i avsnittet ingress
för configuration
inom properties
för containerappen. Följande utgör ett exempel:
{
...
"properties": {
...
"configuration": {
"ingress": {
...
"additionalPortMappings": [
{
"external": false
"targetPort": 80
"exposedPort": 12000
}
]
}
}
...
}