Gestire il routing HTTP in Azure Container App

di Cristian Civera,

Azure Container Apps è una soluzione serverless progettata per eseguire applicazioni containerizzate e microservizi in modo scalabile e gestito. Fornisce un'infrastruttura orchestrata con funzionalità di autoscaling, ingressi semplificati e piena integrazione con gli strumenti di sviluppo Azure. Spesso, quando sviluppiamo più servizi indipendenti, vogliamo che siano accessibili tramite un unico dominio ma con percorsi distinti, senza dover introdurre un gateway centralizzato come un altro container con NGINX o YARP. Questo tipo di configurazione può aumentare la complessità e i costi.

Con l'anteprima del rule-based routing in Azure Container Apps, possiamo ora gestire le richieste HTTP verso diverse applicazioni in base al percorso dell'URL. Questa funzionalità ci permette di creare un FQDN unificato per l'intero ambiente e, tramite regole precise, indirizzare ogni richiesta alla container app corretta.

Per prima cosa, installiamo l'estensione di Container Apps per Azure CLI con il comando.

az extension add --name containerapp --upgrade --allow-preview true

Creiamo ora un file chiamato routing.yml con il seguente contenuto, che definisce due regole.

rules:
  - description: App 1 rule
    routes:
      - match:
          prefix: /app1
        action:
          prefixRewrite: /
    targets:
      - containerApp: my-container-app-1
  - description: App 2 rule
    routes:
      - match:
          path: /app2
        action:
          prefixRewrite: /
      - match:
          path: /
    targets:
      - containerApp: my-container-app-2

Applichiamo infine la configurazione con il seguente comando.

az containerapp env http-route-config create
  --http-route-config-name my-route
  --resource-group my-container-apps
  --name my-container-apps-env
  --yaml routing.yml
  --query properties.fqdn

Questo comando crea una configurazione di routing HTTP per l'ambiente specificato. Il parametro --http-route-config-name definisce il nome univoco della configurazione che, una volta applicata, consente di associare il routing basato su regole all'ambiente di Container Apps. Il file YAML specificato nel parametro --yaml contiene tutte le istruzioni per il comportamento del traffico HTTP in ingresso.

Ci viene restituisco così un nuovo dominio come my-route.graymeadow-c9290af8.northeurope.azurecontainerapps.io che supporta il routing a seconda che lo chiamiamo con il path /app1 e /app2.

È importante notare che l'indirizzo diretto di ciascuna container app continua a funzionare in modo indipendente, permettendoci di accedere direttamente se necessario. Inoltre, possiamo definire più regole di routing, ognuna con un proprio nome e dominio di ingresso, rendendo l'architettura più flessibile e adatta a scenari complessi.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi