Konfigurace příchozího přenosu dat pro vaši aplikaci v Azure Container Apps

V tomto článku se dozvíte, jak povolit funkce příchozího přenosu dat pro vaši aplikaci kontejneru. Příchozí přenos dat je nastavení pro celou aplikaci. Změny nastavení příchozího přenosu dat platí pro všechny revize současně a negenerují nové revize.

Nastavení příchozího přenosu dat

Můžete nastavit následující vlastnosti šablony příchozího přenosu dat:

Vlastnost Popis Hodnoty Požaduje se
allowInsecure Umožňuje nezabezpečený provoz do vaší aplikace kontejneru. Když nastavíte true požadavky HTTP na port 80, automaticky se přesměrují na port 443 pomocí protokolu HTTPS, což umožňuje nezabezpečená připojení. false (výchozí), true povolí nezabezpečená připojení. No
clientCertificateMode Režim klientského certifikátu pro ověřování mTLS Ignorovat označuje, že server zahodí klientský certifikát při předávání. Akceptuje, že server předává klientský certifikát, ale nevyžaduje klientský certifikát. Vyžaduje, aby server vyžadoval klientský certifikát. Required, Accept, Ignore (výchozí) No
customDomains Vlastní vazby domény pro názvy hostitelů Container Apps Zobrazení vlastních domén a certifikátů Pole vazeb No
exposedPort (Pouze příchozí přenos dat TCP) Port TCP naslouchá. Pokud external ano true, hodnota musí být v prostředí Container Apps jedinečná. Číslo portu od 1 do 65535. (nemůže být 80 nebo 443) No
external Povolte příchozí přenos dat do vaší aplikace mimo jeho prostředí Container Apps. true nebo false(výchozí) Ano
ipSecurityRestrictions Omezení příchozího přenosu dat IP. Viz Nastavení omezení příchozího přenosu dat IP. Pole pravidel No
stickySessions.affinity Povolí spřažení relací. none (výchozí), sticky No
targetPort Port, na který kontejner naslouchá příchozím požadavkům. Nastavte tuto hodnotu na číslo portu, které kontejner používá. U příchozího přenosu dat HTTP je koncový bod příchozího přenosu dat vaší aplikace vždy vystavený na portu 443. Ano
traffic Rozdělení provozu mezi revizemi rozděluje váhy. Pole pravidel No
transport Typ přenosového protokolu. auto (výchozí) detekuje protokol HTTP/1 nebo HTTP/2 pro http protokol HTTP/1 http2 pro protokol HTTP/2 tcp pro protokol TCP. No

Povolit příchozí přenos dat

Příchozí přenos dat pro vaši aplikaci kontejneru můžete nakonfigurovat pomocí Azure CLI, šablony ARM nebo webu Azure Portal.

Tento az containerapp ingress enable příkaz povolí příchozí přenos dat pro vaši aplikaci kontejneru. Musíte zadat cílový port a volitelně můžete nastavit vystavený port, pokud je tcptyp přenosu .

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 Argumenty příchozího přenosu dat:

Možnost Vlastnost Popis Hodnoty Požaduje se
--type external Povolte příchozí přenos dat do vaší aplikace odkudkoli nebo omezte příchozí přenos dat do interního prostředí Container Apps. external nebo internal Ano
--allow-insecure allowInsecure Povolte připojení HTTP k aplikaci. No
--target-port targetPort Port, na který kontejner naslouchá příchozím požadavkům. Nastavte tuto hodnotu na číslo portu, které kontejner používá. Koncový bod příchozího přenosu dat vaší aplikace je vždy vystavený na portu 443. Ano
--exposed-port exposedPort (Pouze příchozí přenos dat TCP) Port pro příchozí přenos dat TCP. Pokud external ano true, hodnota musí být v prostředí Container Apps jedinečná, pokud je příchozí přenos dat externí. Číslo portu od 1 do 65535. (nemůže být 80 nebo 443) No
--transport transport Typ přenosového protokolu. auto (výchozí) detekuje protokol HTTP/1 nebo HTTP/2 pro http protokol HTTP/1 http2 pro protokol HTTP/2 tcp pro protokol TCP. No

Povolte příchozí přenos dat pro vaši aplikaci kontejneru pomocí portálu.

Příchozí přenos dat můžete povolit při vytváření aplikace kontejneru nebo můžete pro existující aplikaci kontejneru povolit příchozí přenos dat.

  • Pokud chcete při vytváření aplikace kontejneru nakonfigurovat příchozí přenos dat, vyberte na kartě Konfigurace aplikace kontejneru průvodce vytvořením aplikace kontejneru možnost Příchozípřenos dat.
  • Pokud chcete nakonfigurovat příchozí přenos dat pro existující aplikaci kontejneru, v nabídce Nastavení na stránce prostředku aplikace kontejneru vyberte Příchozípřenos dat.

Povolení příchozího přenosu dat pro vaši aplikaci kontejneru:

Příchozí přenos dat můžete nakonfigurovat při vytváření aplikace kontejneru pomocí webu Azure Portal.

  1. Nastavte příchozí přenos dat na Povoleno.
  2. Nakonfigurujte nastavení příchozího přenosu dat pro vaši aplikaci kontejneru.
  3. Vyberte Omezené na prostředí Container Apps pro interní příchozí přenos dat nebo příjem provozu z libovolného místa pro externí příchozí přenos dat.
  4. Vyberte typ příchozího přenosu dat: HTTP nebo TCP (příchozí přenos dat TCP je k dispozici pouze v prostředích nakonfigurovaných pro vlastní virtuální síť).
  5. Pokud je pro typ příchozího přenosu dat vybrán protokol HTTP, vyberte možnost Transport: Auto, HTTP/1 nebo HTTP/2.
  6. Pokud chcete povolit připojení HTTP k aplikaci, vyberte Nezabezpečená připojení .
  7. Zadejte cílový port pro vaši aplikaci kontejneru.
  8. Pokud jste jako možnost Přenos vybrali tcp, zadejte port Vystavený pro vaši aplikaci kontejneru. Vystavené číslo portu může být 165535. (nemůže být 80 nebo 443)

Na stránce nastavení příchozího přenosu dat pro vaši aplikaci kontejneru můžete také nakonfigurovat omezení PROTOKOLU IP. Informace o konfiguraci omezení IP adres najdete v tématu Omezení protokolu IP.

Povolte příchozí přenos dat pro vaši aplikaci kontejneru ingress pomocí vlastnosti konfigurace. external Nastavte vlastnost na truea nastavte své transport a targetPort vlastnosti.
-external vlastnost může být nastavena na hodnotu true pro externí nebo false pro interní příchozí přenos dat.

  • transport Nastavte na to, aby auto se zjistilo HTTP/1 nebo HTTP/2, http pro HTTP/1, http2 HTTP/2 nebo tcp TCP.
  • targetPort Nastavte číslo portu, které kontejner používá. Koncový bod příchozího přenosu dat vaší aplikace je vždy vystavený na portu 443.
  • exposedPort Nastavte vlastnost, pokud typ přenosu je tcp na port pro příchozí přenos tcp. Hodnota musí být v prostředí Container Apps jedinečná, pokud je příchozí přenos dat externí. Číslo portu od 1 do 65535. (nemůže být 80 nebo 443)
{
  ...
  "configuration": {
    "ingress": {
        "external": true,
        "transport": "tcp",
        "targetPort": 80,
        "exposedPort": 8080,
    },
  }
}

Zakázání příchozího přenosu dat

Pomocí příkazu zakažte příchozí přenos dat pro vaši aplikaci kontejneru az containerapp ingress .

az containerapp ingress disable \
    --name <app-name> \
    --resource-group <resource-group> \

Příchozí přenos dat pro aplikaci kontejneru můžete zakázat pomocí portálu.

  1. V nabídce Nastavení stránky aplikace kontejneru vyberte Příchozípřenos dat.
  2. Zrušte výběr nastavení Povoleno příchozího přenosu dat.
  3. Zvolte Uložit.

Sceenshot of disabling container app ingress.

Zakažte příchozí přenos dat pro vaši aplikaci kontejneru tak, že zcela vynecháte ingress vlastnost properties.configuration konfigurace.

Použití dalších portů TCP

Z aplikace můžete zveřejnit další porty TCP. Další informace najdete v článku o konceptu příchozího přenosu dat.

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 spuštění az extension add -n containerapp , abyste nainstalovali nejnovější verzi rozšíření rozhraní příkazového řádku pro aplikace kontejneru.

Přidání dalších portů TCP je možné provést prostřednictvím rozhraní příkazového řádku odkazem na soubor YAML s konfigurací portů TCP.

az containerapp create \
    --name <app-name> \
    --resource-group <resource-group> \
    --yaml <your-yaml-file>

Následuje příklad souboru YAML, na který můžete odkazovat ve výše uvedeném příkazu CLI. Konfigurace pro další porty TCP je pod 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

Tato funkce není na webu Azure Portal podporovaná.

Následující šablona ARM obsahuje příklad přidání dalších portů do kontejnerových aplikací. Každý další port by se měl přidat v additionalPortMappings rámci oddílu ingress pro propertiesconfiguration aplikaci kontejneru. Následuje příklad:

{
  ...
  "properties": {
    ...
    "configuration": {
      "ingress": {
        ...
        "additionalPortMappings": [
          {
            "external": false
            "targetPort": 80
            "exposedPort": 12000
          }
        ]
      }
    }
  ...
}

Další kroky