Configurare l'ingresso per l'app in App Azure Container
Questo articolo illustra come abilitare le funzionalità di ingresso per l'app contenitore. L'ingresso è un'impostazione a livello di applicazione. Le modifiche apportate alle impostazioni di ingresso si applicano a tutte le revisioni contemporaneamente e non generano nuove revisioni.
Impostazioni di ingresso
È possibile impostare le proprietà del modello di ingresso seguenti:
Proprietà | Descrizione | Valori | Richiesto |
---|---|---|---|
allowInsecure |
Consente il traffico non sicuro verso l'app contenitore. Se impostato su true richieste HTTP sulla porta 80 non vengono reindirizzate automaticamente alla porta 443 usando HTTPS, consentendo connessioni non sicure. |
false (impostazione predefinita), true abilita connessioni non sicure |
No |
clientCertificateMode |
Modalità certificato client per l'autenticazione mTLS. Ignora indica che il certificato client viene eliminato dal server durante l'inoltro. Accept indica che il server inoltra il certificato client, ma non richiede un certificato client. Require indica che il server richiede un certificato client. | Required , Accept , Ignore (impostazione predefinita) |
No |
customDomains |
Associazioni di dominio personalizzate per i nomi host di App contenitore. Vedere Domini e certificati personalizzati | Matrice di associazioni | No |
exposedPort |
(solo ingresso TCP) La porta TCP è in ascolto. Se external è true , il valore deve essere univoco nell'ambiente App contenitore. |
Numero di porta da 1 a 65535 . (non può essere 80 o 443 ) |
No |
external |
Consentire l'ingresso all'app dall'esterno dell'ambiente App contenitore. | true o false (impostazione predefinita) |
Sì |
ipSecurityRestrictions |
Restrizioni relative all'ingresso IP. Vedere Configurare le restrizioni di ingresso IP | Matrice di regole | No |
stickySessions.affinity |
Abilita l'affinità di sessione. | none (impostazione predefinita), sticky |
No |
targetPort |
La porta su cui il contenitore è in ascolto per le richieste in ingresso. | Impostare questo valore sul numero di porta usato dal contenitore. Per l'ingresso HTTP, l'endpoint di ingresso dell'applicazione viene sempre esposto sulla porta 443 . |
Sì |
traffic |
I pesi di divisione del traffico sono suddivisi tra le revisioni. | Matrice di regole | No |
transport |
Tipo di protocollo di trasporto. | auto (impostazione predefinita) rileva HTTP/1 o HTTP/2, http per HTTP/1, http2 per HTTP/2, tcp per TCP. |
No |
Abilitare l'ingresso
È possibile configurare l'ingresso per l'app contenitore usando l'interfaccia della riga di comando di Azure, un modello di Resource Manager o il portale di Azure.
Questo az containerapp ingress enable
comando abilita l'ingresso per l'app contenitore. È necessario specificare la porta di destinazione ed eventualmente impostare la porta esposta se il tipo di trasporto è 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
Argomenti di ingresso:
Opzione | Proprietà | Descrizione | Valori | Richiesto |
---|---|---|---|---|
--type |
external | Consentire l'ingresso all'app da qualsiasi posizione o limitare l'ingresso all'ambiente app contenitore interno. | external oppure internal |
Sì |
--allow-insecure |
allowInsecure | Consenti connessioni HTTP all'app. | No | |
--target-port |
targetPort | La porta su cui il contenitore è in ascolto per le richieste in ingresso. | Impostare questo valore sul numero di porta usato dal contenitore. L'endpoint di ingresso dell'applicazione viene sempre esposto sulla porta 443 . |
Sì |
--exposed-port |
exposedPort | (solo ingresso TCP) Porta per l'ingresso TCP. Se external è true , il valore deve essere univoco nell'ambiente App contenitore se l'ingresso è esterno. |
Numero di porta da 1 a 65535 . (non può essere 80 o 443 ) |
No |
--transport |
transport | Tipo di protocollo di trasporto. | auto (impostazione predefinita) rileva HTTP/1 o HTTP/2, http per HTTP/1, http2 per HTTP/2, tcp per TCP. |
No |
Abilitare l'ingresso per l'app contenitore usando il portale.
È possibile abilitare l'ingresso quando si crea l'app contenitore oppure è possibile abilitare l'ingresso per un'app contenitore esistente.
- Per configurare l'ingresso quando si crea l'app contenitore, selezionare Ingresso nella scheda Configurazione app della creazione guidata dell'app contenitore.
- Per configurare l'ingresso per un'app contenitore esistente, selezionare Ingresso dal menu Impostazioni della pagina delle risorse dell'app contenitore.
Abilitazione dell'ingresso per l'app contenitore:
È possibile configurare l'ingresso quando si crea l'app contenitore usando il portale di Azure.
- Impostare Ingresso su Abilitato.
- Configurare le impostazioni di ingresso per l'app contenitore.
- Selezionare Limitato all'ambiente app contenitore per l'ingresso interno o Accettazione del traffico da qualsiasi posizione per l'ingresso esterno.
- Selezionare il Tipo di ingresso: HTTP o TCP (ingresso TCP è disponibile solo negli ambienti configurati con una rete virtuale personalizzata).
- Se http è selezionato per Tipo di ingresso, selezionare Il trasporto: automatico, HTTP/1 o HTTP/2.
- Selezionare Connessioni non sicure se si desidera consentire le connessioni HTTP all'app.
- Immettere la porta di destinazione per l'app contenitore.
- Se è stato selezionato TCP per l'opzione Trasporto, immettere la porta esposta per l'app contenitore. Il numero di porta esposto può essere
1
in65535
. (non può essere80
o443
)
La pagina Impostazioni di ingresso per l'app contenitore consente anche di configurare restrizioni IP. Per informazioni su come configurare la restrizione IP, vedere Restrizioni IP.
Abilitare l'ingresso per l'app contenitore usando la ingress
proprietà di configurazione. Impostare la external
proprietà su true
e impostare le transport
proprietà e targetPort
.
-external
la proprietà può essere impostata su true per esterno o false per l'ingresso interno.
transport
Impostare suauto
per rilevare HTTP/1 o HTTP/2,http
per HTTP/1,http2
per HTTP/2 otcp
per TCP.- Impostare su
targetPort
il numero di porta usato dal contenitore. L'endpoint di ingresso dell'applicazione viene sempre esposto sulla porta443
. - Impostare la
exposedPort
proprietà se il tipo di trasporto ètcp
una porta per l'ingresso TCP. Il valore deve essere univoco nell'ambiente App contenitore se l'ingresso è esterno. Numero di porta da1
a65535
. (non può essere80
o443
)
{
...
"configuration": {
"ingress": {
"external": true,
"transport": "tcp",
"targetPort": 80,
"exposedPort": 8080,
},
}
}
Disabilitare l'ingresso
Disabilitare l'ingresso per l'app contenitore usando il az containerapp ingress
comando .
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
È possibile disabilitare l'ingresso per l'app contenitore usando il portale.
- Selezionare Ingresso dal menu Impostazioni della pagina dell'app contenitore.
- Deselezionare l'impostazione Ingresso abilitato .
- Seleziona Salva.
Disabilitare l'ingresso per l'app contenitore omettendo completamente la ingress
proprietà properties.configuration
di configurazione.
Usare altre porte TCP
È possibile esporre porte TCP aggiuntive dall'applicazione. Per altre informazioni, vedere l'articolo relativo al concetto di ingresso.
Nota
Per usare questa funzionalità, è necessario avere l'estensione dell'interfaccia della riga di comando delle app contenitore. Eseguire az extension add -n containerapp
per installare la versione più recente dell'estensione dell'interfaccia della riga di comando delle app contenitore.
L'aggiunta di altre porte TCP può essere eseguita tramite l'interfaccia della riga di comando facendo riferimento a un file YAML con le configurazioni delle porte TCP.
az containerapp create \
--name <app-name> \
--resource-group <resource-group> \
--yaml <your-yaml-file>
Di seguito è riportato un file YAML di esempio a cui è possibile fare riferimento nel comando dell'interfaccia della riga di comando precedente. La configurazione per le porte TCP aggiuntive è in 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
- Espandere la sezione Porte TCP aggiuntive nel pannello Ingresso.
- Aggiungere altre porte TCP su cui l'applicazione accetterà il traffico nel campo Porta di destinazione. Se la porta esposta viene lasciata vuota, questa operazione verrà accettata dallo stesso valore impostato nella porta di destinazione.
- Modificare il campo Traffico in ingresso in base alle esigenze. Verrà configurata la posizione in cui il traffico in ingresso sarà limitato a per ogni porta.
- Al termine fare clic su Salva.
Il modello di Resource Manager seguente fornisce un esempio di come è possibile aggiungere altre porte alle app contenitore. Ogni porta aggiuntiva deve essere aggiunta additionalPortMappings
all'interno della ingress
sezione per all'interno properties
dell'app configuration
contenitore. Di seguito è riportato un esempio:
{
...
"properties": {
...
"configuration": {
"ingress": {
...
"additionalPortMappings": [
{
"external": false
"targetPort": 80
"exposedPort": 12000
}
]
}
}
...
}