

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Best practice per le istanze gestite Lambda
<a name="lambda-managed-instances-best-practices"></a>

## configurazione del provider di capacità
<a name="lambda-managed-instances-bp-capacity-provider"></a>

**Separa i fornitori di capacità in base al livello di affidabilità. ** Crea diversi fornitori di capacità per carichi di lavoro con requisiti di sicurezza diversi. Tutte le funzioni assegnate allo stesso fornitore di capacità devono essere attendibili reciprocamente, poiché i fornitori di capacità fungono da limite di sicurezza.

**Usa nomi descrittivi. ** Indicare i fornitori di capacità per indicare chiaramente l'uso previsto e il livello di fiducia (ad esempio`production-trusted`,,`dev-sandbox`). Questo aiuta i team a comprendere lo scopo e lo stato di sicurezza di ciascun fornitore di capacità.

**Utilizza più zone di disponibilità. ** Specifica le sottoreti su più zone di disponibilità durante la creazione dei fornitori di capacità. Per impostazione predefinita, Lambda avvia tre istanze per la resilienza AZ, garantendo un'elevata disponibilità delle funzioni.

## Selezione del tipo di istanza
<a name="lambda-managed-instances-bp-instance-types"></a>

**Lascia che Lambda scelga i tipi di istanza. ** Per impostazione predefinita, Lambda sceglie i tipi di istanza migliori per il carico di lavoro. Ti consigliamo di lasciare che Lambda Managed Instances scelga i tipi di istanza per te, poiché limitare il numero di possibili tipi di istanza potrebbe comportare una minore disponibilità.

**Specifica i tipi di istanza per requisiti specifici. ** Se hai requisiti hardware specifici, imposta i tipi di istanza consentiti su un elenco di istanze compatibili. Ad esempio:
+ Per le applicazioni che richiedono un'elevata larghezza di banda di rete, seleziona diversi tipi di istanze
+ Per ambienti di test o sviluppo con vincoli di costo, scegli tipi di istanze più piccoli come m7a.large

## Configurazione delle funzioni
<a name="lambda-managed-instances-bp-function-config"></a>

**Scegliete le impostazioni appropriate per la memoria e la vCPU. ** Seleziona le configurazioni di memoria e vCPU che supportano l'esecuzione multi-simultanea della tua funzione. La dimensione minima della funzione supportata è di 2 GB e 1 vCPU.
+ Per le applicazioni Python, scegli un rapporto più elevato tra memoria e vCPU (ad esempio 4 a 1 o 8 a 1) a causa del modo in cui Python gestisce la multi-concorrenza
+ Per CPU-intensive operazioni o funzioni che eseguono un I/O ridotto, scegli più di una vCPU
+ Per IO-heavy applicazioni come servizi web o processi batch, la multi-concorrenza offre i maggiori vantaggi

**Configura la massima concorrenza in modo appropriato. ** Lambda sceglie impostazioni predefinite ragionevoli per la massima concorrenza che bilanciano il consumo di risorse e la produttività. Modifica questa impostazione in base all'utilizzo delle risorse della tua funzione:
+ Aumentate la concorrenza massima (fino a 64 per vCPU) se le chiamate di funzione utilizzano pochissima CPU
+ Diminuisci la concorrenza massima se l'applicazione consuma una grande quantità di memoria e pochissima CPU

Tieni presente che gli ambienti di esecuzione con una concorrenza molto bassa potrebbero presentare rallentamenti e difficoltà di scalabilità.

## Scaling configuration (Configurazione dimensionamento)
<a name="lambda-managed-instances-bp-scaling"></a>

**Imposta un utilizzo mirato delle risorse appropriato. ** Per impostazione predefinita, Lambda mantiene un margine di manovra sufficiente per consentire al traffico di raddoppiare entro 5 minuti senza rallentamenti. Modifica questa impostazione in base alle caratteristiche del carico di lavoro:
+ Per carichi di lavoro molto costanti o applicazioni non sensibili alle accelerazioni, stabilisci l'obiettivo su un livello elevato per ottenere un utilizzo maggiore e costi inferiori
+ Per i carichi di lavoro con potenziali interruzioni del traffico, stabilisci obiettivi di risorse su un livello basso per mantenere un margine di manovra aggiuntivo

**Pianifica la crescita del traffico. ** Se il traffico raddoppia più che in 5 minuti, potresti riscontrare rallentamenti man mano che Lambda aumenta le istanze e gli ambienti di esecuzione. Progetta la tua applicazione in modo da gestire le potenziali limitazioni durante i rapidi periodi di scalabilità.

## Sicurezza
<a name="lambda-managed-instances-bp-security"></a>

**Applica il privilegio minimo per le autorizzazioni. PassCapacityProvider ** Concedi `lambda:PassCapacityProvider` le autorizzazioni solo ai fornitori di capacità necessari. Utilizza le autorizzazioni a livello di risorsa per limitare i fornitori di capacità che gli utenti possono assegnare alle funzioni.

**Monitora l'utilizzo dei fornitori di capacità. ** Utilizzato AWS CloudTrail per monitorare le assegnazioni dei fornitori di capacità e i modelli di accesso. Questo aiuta a identificare i tentativi di accesso non autorizzati e garantisce la conformità alle politiche di sicurezza.

**Separa i carichi di lavoro non attendibili. ** Non fare affidamento sui contenitori per l'isolamento di sicurezza tra carichi di lavoro non attendibili. Utilizza diversi fornitori di capacità per separare i carichi di lavoro che non sono reciprocamente affidabili.

## Ottimizzazione dei costi
<a name="lambda-managed-instances-bp-cost"></a>

**Utilizza le opzioni di prezzo di EC2. ** Sfrutta i piani di risparmio e le istanze riservate di EC2 per ridurre i costi. Queste opzioni di prezzo si applicano al calcolo EC2 sottostante (la commissione di gestione del 15% non è scontata).

**Ottimizza per carichi di lavoro stazionari. ** Le istanze gestite Lambda sono più adatte per funzioni stazionarie con traffico prevedibile ad alto volume. Per modelli di traffico intensi, Lambda (impostazione predefinita) potrebbe essere più conveniente.

**Monitora l'utilizzo delle risorse. ** Tieni traccia delle CloudWatch metriche per comprendere l'utilizzo della CPU e della memoria. Regola l'allocazione della memoria delle funzioni e la selezione del tipo di istanza in base ai modelli di utilizzo effettivi per ottimizzare i costi.

## Monitoraggio e osservabilità
<a name="lambda-managed-instances-bp-monitoring"></a>

**Monitora le metriche dei fornitori di capacità. ** Tieni traccia delle metriche a livello di fornitore di capacità, tra cui l'utilizzo della CPU e MemoryUtilization vCPUAvailable, e verifica che siano disponibili risorse sufficienti MemoryAvailable per i tuoi carichi di lavoro.

**Monitora le metriche dell'ambiente di esecuzione. ** Tieni traccia delle metriche a livello dell'ambiente di esecuzione, tra cui ExecutionEnvironmentConcurrency e ExecutionEnvironmentConcurrencyLimit per comprendere il comportamento di scalabilità e identificare il potenziale throttling.

**Imposta gli allarmi. CloudWatch ** Crea CloudWatch allarmi per le metriche chiave per identificare in modo proattivo i problemi:
+ Elevato utilizzo della CPU o della memoria
+ Bassa capacità disponibile
+ Ci avviciniamo ai limiti di concorrenza

## Language-specific considerazioni
<a name="lambda-managed-instances-bp-runtime"></a>

**Segui le best practice specifiche della lingua. ** Ogni linguaggio di programmazione gestisce la multi-concorrenza in modo diverso. Consulta le guide specifiche della lingua per consigli dettagliati:
+ **Java: ** utilizza raccolte thread-safe e per lo stato specifico della richiesta `AtomicInteger` `ThreadLocal`
+ **Node.js: ** utilizza InvokeStore per tutti gli stati specifici della richiesta ed evita le variabili globali
+ **Python: ** utilizza nomi di file univoci `/tmp` con gli ID delle richieste e considera l'isolamento della memoria basato sui processi
+ **Rust: ** usa `run_concurrent` al posto di`run`, con la `concurrency-tokio` funzione abilitata. Il gestore deve essere `Clone` \+`Send`.

**Verifica i problemi di sicurezza e concorrenza dei thread. ** Prima di passare alla produzione, testate accuratamente le vostre funzioni per individuare eventuali problemi di sicurezza dei thread, condizioni di gara e corretto isolamento dello stato in caso di carico simultaneo.

## Fasi successive
<a name="lambda-managed-instances-bp-next-steps"></a>
+ Scopri i fornitori di [ capacità per le istanze gestite Lambda ](lambda-managed-instances-capacity-providers.md)
+ Scopri la [ scalabilità per le istanze gestite Lambda ](lambda-managed-instances-scaling.md)
+ Consulta le guide specifiche per il runtime per [ Java e Python ](lambda-managed-instances-java-runtime.md) [ Node.js ](lambda-managed-instances-nodejs-runtime.md) [Runtime Python per istanze gestite Lambda](lambda-managed-instances-python-runtime.md)
+ Configura la connettività [ VPC per i tuoi fornitori di capacità ](lambda-managed-instances-networking.md)
+ Monitora le istanze gestite Lambda con le metriche [ CloudWatch ](lambda-managed-instances-monitoring.md)