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)
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.
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
--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.
--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.

  1. Impostare Ingresso su Abilitato.
  2. Configurare le impostazioni di ingresso per l'app contenitore.
  3. Selezionare Limitato all'ambiente app contenitore per l'ingresso interno o Accettazione del traffico da qualsiasi posizione per l'ingresso esterno.
  4. Selezionare il Tipo di ingresso: HTTP o TCP (l'ingresso TCP è disponibile solo negli ambienti configurati con una rete virtuale personalizzata).
  5. Se http è selezionato per Tipo di ingresso, selezionare Il trasporto: automatico, HTTP/1 o HTTP/2.
  6. Selezionare Connessioni non sicure se si desidera consentire le connessioni HTTP all'app.
  7. Immettere la porta di destinazione per l'app contenitore.
  8. Se è stato selezionato TCP per l'opzione Trasporto, immettere la porta esposta per l'app contenitore. Il numero di porta esposto può essere 1 in 65535. (non può essere 80 o 443)

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 truee impostare le transport proprietà e targetPort .
-external la proprietà può essere impostata su true per esterno o false per l'ingresso interno.

  • transport Impostare su auto per rilevare HTTP/1 o HTTP/2, http per HTTP/1, http2 per HTTP/2 o tcp per TCP.
  • Impostare su targetPort il numero di porta usato dal contenitore. L'endpoint di ingresso dell'applicazione viene sempre esposto sulla porta 443.
  • 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 da 1 a 65535. (non può essere 80 o 443)
{
  ...
  "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.

  1. Selezionare Ingresso dal menu Impostazioni della pagina dell'app contenitore.
  2. Deselezionare l'impostazione Ingressoabilitato .
  3. Seleziona Salva.

Sceenshot of disabling container app ingress.

Disabilitare l'ingresso per l'app contenitore omettendo completamente la ingress proprietà properties.configuration di configurazione.

Usare porte TCP aggiuntive

È 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 porte TCP aggiuntive 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

Questa funzionalità non è supportata nella portale di Azure.

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
          }
        ]
      }
    }
  ...
}

Passaggi successivi