Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Oltre all'interprete di codice predefinito fornito dalle sessioni dinamiche di App Contenitore di Azure, è anche possibile usare contenitori personalizzati per definire sandbox di sessione personalizzate.
Annotazioni
Questo articolo si applica solo ai pool di sessioni di contenitori personalizzati. Se non specificato, le funzionalità descritte di seguito non sono disponibili per i pool di sessioni dell'interprete del codice.
Usi delle sessioni di container personalizzati
I contenitori personalizzati consentono di creare soluzioni personalizzate in base alle esigenze. Consentono di eseguire codice o eseguire applicazioni in ambienti veloci e temporanei e offrono spazi protetti e in modalità sandbox con Hyper-V. Inoltre, possono essere configurati con l'isolamento di rete facoltativo. Alcuni esempi includono:
Interpreti di codice: quando è necessario eseguire codice non attendibile in sandbox sicure da un linguaggio non supportato nell'interprete predefinito oppure è necessario il controllo completo sull'ambiente dell'interprete del codice.
Esecuzione isolata: quando è necessario eseguire applicazioni in scenari multi-tenant ostili in cui ogni tenant o utente ha un proprio ambiente in modalità sandbox. Questi ambienti sono isolati l'uno dall'altro e dall'applicazione host. Alcuni esempi includono applicazioni che eseguono codice fornito dall'utente, codice che concede all'utente finale l'accesso a una shell basata su cloud, agenti di intelligenza artificiale e ambienti di sviluppo.
Uso delle sessioni di contenitori personalizzate
Per usare sessioni di contenitori personalizzate, creare prima di tutto un pool di sessioni con un'immagine del contenitore personalizzata. Le App contenitore di Azure avviano automaticamente i contenitori nelle proprie sandbox Hyper-V usando l'immagine fornita. Una volta avviato, il contenitore è disponibile per il pool di sessioni.
Quando l'applicazione richiede una sessione, un'istanza viene allocata immediatamente dal pool. La sessione rimane attiva fino a quando non entra in uno stato di inattività, e viene quindi arrestata ed eliminata automaticamente.
Probe di contenitori per i pool di sessioni
Usare i probe del contenitore per configurare le verifiche di integrità per i pool di sessioni personalizzate dei contenitori e mantenere le istanze di sessione integre.
Annotazioni
Le sonde del contenitore richiedono la versione 2025-02-02-preview dell'API o versioni successive.
I probe dei contenitori consentono di definire le verifiche di integrità per i contenitori di sessioni, in modo analogo ai probe di integrità nell'app contenitore di Azure. Se configurato, il pool di sessioni monitora ogni istanza di sessione e rimuove le istanze non funzionanti.
Pool di sessioni:
- Assicura che le istanze di sessione pronte siano in integre in base alle sonde.
- Rimuove automaticamente le istanze di sessione difettose.
- Aumenta le prestazioni per mantenere il conteggio configurato
readySessionInstancescon sessioni integre.
I pool di sessioni supportano i tipi di probe Liveness e Startup. Per ulteriori informazioni sul funzionamento dei probe, vedere Probe di integrità in App contenitore di Azure.
Configurazione
Quando si crea o si aggiorna un pool di sessioni, specificare le sonde nella properties.customContainerTemplate.containers sezione del payload della richiesta.
Per la specifica api completa, vedere API SessionPools.
Esempio
{
"properties": {
"customContainerTemplate": {
"containers": [
{
"name": "my-session-container",
"image": "myregistry.azurecr.io/my-session-image:latest",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080
},
"periodSeconds": 10,
"failureThreshold": 3
},
{
"type": "Startup",
"httpGet": {
"path": "/ready",
"port": 8080
},
"periodSeconds": 5,
"failureThreshold": 30
}
]
}
]
},
"dynamicPoolConfiguration": {
"readySessionInstances": 5
}
}
}
Risoluzione dei problemi
Se il pool di sessioni non mantiene il numero previsto di sessioni sane readySessionInstances, tenere presente quanto segue:
- Controllare i log dei contenitori : esaminare i log dei contenitori di sessioni per identificare i problemi relativi agli endpoint probe o all'avvio del contenitore. Consulta i log per i pool di sessioni di contenitori personalizzati.
- Verificare la configurazione del probe : verificare che i percorsi, le porte e le soglie del probe siano configurati correttamente per l'applicazione.
- Esaminare l'integrità del contenitore : verificare la presenza di problemi all'interno del contenitore che impediscono la risposta corretta degli endpoint probe.
Interrompere una sessione
Usare l'API Arresta sessione per terminare una sessione in un pool di sessioni del contenitore personalizzato.
I pool di sessioni supportano la gestione automatica delle sessioni tramite lifecycleConfiguration, che gestisce il ciclo di vita della sessione in base alla configurazione. Esistono tuttavia scenari in cui potrebbe essere necessario un maggiore controllo.
Dopo aver allocato una sessione, è possibile chiamare questa API per terminarla manualmente in qualsiasi momento. Questa operazione è utile quando:
- È necessario liberare le risorse prima che una sessione raggiunga il suo time-to-live.
- Il pool di sessioni ha raggiunto il limite massimo di sessioni simultanee ed è necessario liberare capacità per le nuove sessioni.
- Una sessione ha completato il proprio lavoro e si desidera rilasciare immediatamente le risorse.
Informazioni di riferimento sulle API
Richiedi
POST {PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier={SessionIdentifier}
Parametri
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
api-version |
string | Sì | Versione dell'API da usare, ad esempio 2025-10-02-preview. |
identifier |
string | Sì | Identificatore univoco della sessione da arrestare. |
Examples
Richiedi
POST https://{PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier=testSessionIdentifier
risposta
HTTP/1.1 200 OK
Content-Type: text/plain
Session testSessionIdentifier in session pool testSessionPool stopped.
Registrazione
I pool di sessioni di contenitori personalizzati si integrano con Monitoraggio di Azure e Log Analytics. I log dell'applicazione vengono acquisiti solo se il contenitore scrive l'output in stdout o stderr, quindi assicurarsi che l'app emetta i log nella console.
Prerequisiti
- Un ambiente di App Contenitore di Azure con un pool di sessioni del contenitore personalizzato
- Un'area di lavoro Log Analytics (o crearne una durante l'installazione)
Configurare la registrazione
Passaggio 1: Abilitare la registrazione di Monitoraggio di Azure
- Vai al tuo Container Apps Environment nel portale di Azure.
- In Monitoraggio selezionare Opzioni di registrazione.
- Impostare la destinazione dei log su Monitoraggio di Azure.
Passaggio 2: Configurare le impostazioni di diagnostica
- Nell'ambiente delle tue app contenitore, vai a Impostazioni di diagnostica sotto Monitoraggio.
- Fare clic su + Aggiungi impostazione di diagnostica.
- Specificare un nome per l'impostazione di diagnostica.
- In Log selezionare le categorie di log correlate alla sessione da acquisire.
- In Dettagli destinazione selezionare Invia all'area di lavoro Log Analytics.
- Scegliere l'area di lavoro Log Analytics o crearne una nuova.
- Seleziona Salva.
Tabelle di Log Analytics
| Categoria di log | Tabella di Log Analytics | Descrizione |
|---|---|---|
| Log delle applicazioni | AppEnvSessionConsoleLogs |
Output standard (stdout) e errore standard (stderr) generato dall'applicazione containerizzata. |
| Log delle piattaforme |
AppEnvSessionLifecycleLogs, AppEnvSessionPoolEvents |
Eventi generati dalla piattaforma correlati all'allocazione, al ciclo di vita e allo stato operativo del pool di sessioni. |
Se i log vengono inviati direttamente a Log Analytics, le tabelle usano il suffisso _CL , ad esempio AppEnvSessionConsoleLogs_CL. Quando i log vengono indirizzati tramite le impostazioni di diagnostica di Monitoraggio di Azure, i nomi delle tabelle non includono il suffisso _CL.
Visualizzare i log delle sessioni
Dopo aver configurato le impostazioni di diagnostica, i log vengono inviati all'area di lavoro Log Analytics.
Log delle query in Analisi dei log:
- Passare all'area di lavoro Log Analytics nel portale di Azure.
- Selezionare Log sotto Generale.
- Usare Il linguaggio di query Kusto (KQL) per eseguire query sui log di sessione.
Interrogazioni di esempio
Visualizzare i log recenti della console dalle sessioni:
AppEnvSessionConsoleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
| take 100
Visualizzare gli eventi del ciclo di vita della sessione:
AppEnvSessionLifecycleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
Visualizzare gli eventi del pool di sessioni:
AppEnvSessionPoolEvents
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
Metrics
Azure Container Apps emette metriche di Azure Monitor per pool di sessioni di contenitori personalizzati. Usare queste metriche per tenere traccia della capacità e dell'attività del pool nel tempo.
Metriche supportate
Per l'elenco completo, vedere Metriche supportate - Microsoft.App/sessionpools - Monitoraggio di Azure.
| Metrica | Nome nell'API REST | Unità | Aggregazione | Dimensioni | Intervalli di tempo | Esportazione DS |
|---|---|---|---|---|---|---|
|
Numero di sessioni in esecuzione Numero di pod di sessione in esecuzione nel pool di sessioni |
PoolExecutingPodCount |
Conteggio | Totale (Somma), Medio, Massimo, Minimo | poolName |
PT1M | Sì |
|
Creazione del numero di sessioni Numero di creazione di pod di sessione nel pool di sessioni |
PoolPendingPodCount |
Conteggio | Totale (Somma), Medio, Massimo, Minimo | poolName |
PT1M | Sì |
|
Numero di sessioni pronte Numero di pod di sessione pronti nel pool di sessioni |
PoolReadyPodCount |
Conteggio | Totale (Somma), Medio, Massimo, Minimo | poolName |
PT1M | Sì |
Visualizzare le metriche della sessione
È possibile usare Monitoraggio di Azure o le metriche dell'ambiente di App contenitore per visualizzare le metriche basate sulla sessione.
Opzione 1: Metriche di Monitoraggio di Azure
- Aprire la pagina Metriche di Monitoraggio di Azure.
- Selezionare il pool di sessioni personalizzato del contenitore come ambito.
- Scegliere una metrica e un'aggregazione da visualizzare.
Opzione 2: Metriche dell'ambiente delle app contenitore
- Nel portale di Azure, aprire l'ambiente Container Apps.
- Selezionare Metriche.
- Usare Ambito per selezionare il pool di sessioni del contenitore personalizzato.
- Scegliere una metrica e un'aggregazione da visualizzare.