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à.
Sviluppo di codice applicativo per App Runner
Questo capitolo illustra le informazioni sul runtime e le linee guida di sviluppo da prendere in considerazione quando si sviluppa o si migra il codice dell'applicazione per la distribuzione. AWS App Runner
Informazioni sul runtime
Sia che tu fornisca un'immagine del contenitore o che App Runner ne crei una per te, App Runner esegue il codice dell'applicazione in un'istanza del contenitore. Ecco alcuni aspetti chiave dell'ambiente di runtime dell'istanza del contenitore.
-
Supporto del framework: App Runner supporta qualsiasi immagine che implementa un'applicazione Web. È indipendente dal linguaggio di programmazione scelto e dal server o framework di applicazioni Web che utilizzi, se ne utilizzi uno. Per tua comodità, forniamo runtime gestiti specifici della piattaforma per varie piattaforme di programmazione, per semplificare il processo di creazione delle applicazioni e la creazione di immagini astratte.
-
Richieste Web: App Runner fornisce supporto per HTTP 1.0 e HTTP 1.1 alle istanze del contenitore. Per ulteriori informazioni sulla configurazione del servizio, consulta. Configurazione di un servizio App Runner Non è necessario implementare la gestione del traffico sicuro HTTPS. App Runner reindirizza tutte le richieste HTTP in entrata agli endpoint HTTPS corrispondenti. Non è necessario configurare alcuna impostazione per abilitare il reindirizzamento delle richieste Web HTTP. App Runner termina il TLS prima di passare le richieste all'istanza del contenitore dell'applicazione.
Nota
-
Esiste un limite di timeout di richiesta totale di 120 secondi per le richieste HTTP. I 120 secondi includono il tempo impiegato dall'applicazione per leggere la richiesta, incluso il corpo, e completare la scrittura della risposta HTTP.
-
Il limite di timeout di lettura e risposta della richiesta dipende dalle applicazioni utilizzate. Queste applicazioni possono avere i propri timeout interni, ad esempio il server HTTP per Python, Gunicorn, ha un limite di timeout predefinito di 30 secondi. In questi casi, il limite di timeout dell'applicazione ha la precedenza sul limite di timeout di 120 secondi di App Runner.
-
Non è necessario configurare le suite di crittografia TLS o altri parametri poiché App Runner, essendo un servizio completamente gestito, gestisce la terminazione TLS al posto tuo.
-
-
App stateless: attualmente App Runner non supporta un'app stateful. Pertanto, App Runner non garantisce la persistenza dello stato oltre la durata dell'elaborazione di una singola richiesta web in entrata.
-
Archiviazione: App Runner aumenta o riduce automaticamente le istanze dell'applicazione App Runner in base al volume di traffico in entrata. Puoi configurare le opzioni di ridimensionamento automatico per la tua applicazione App Runner. Poiché il numero di istanze attualmente attive che elaborano le richieste Web si basa sul volume di traffico in entrata, App Runner non può garantire che i file possano persistere oltre l'elaborazione di una singola richiesta. Pertanto, App Runner implementa il file system nell'istanza del contenitore come archiviazione temporanea, il che implica che i file siano transitori. Ad esempio, i file non persistono quando metti in pausa e riprendi il servizio App Runner.
App Runner offre 3 GB di spazio di archiviazione temporaneo e utilizza una parte di tale spazio per l'immagine del contenitore estratta, compressa e non compressa sull'istanza. Lo spazio di archiviazione temporaneo rimanente può essere utilizzato dal servizio App Runner. Tuttavia, questa non è una memoria permanente a causa della sua natura stateless.
Nota
Potrebbero verificarsi scenari in cui i file di archiviazione persistono tra le richieste. Ad esempio, se la richiesta successiva arriva sulla stessa istanza, i file di archiviazione persisteranno. La persistenza dei file di archiviazione tra le richieste può essere utile in determinate situazioni. Ad esempio, quando gestisci una richiesta, puoi memorizzare nella cache i file scaricati dall'applicazione se le richieste future potrebbero averne bisogno. Ciò potrebbe velocizzare la gestione delle richieste future, ma non può garantire i guadagni di velocità. Il codice non deve presupporre che esista ancora un file scaricato in una richiesta precedente.
-
Variabili di ambiente: per impostazione predefinita, App Runner rende disponibile la variabile di
PORT
ambiente nell'istanza del contenitore. È possibile configurare il valore della variabile con informazioni sulla porta e aggiungere variabili e valori di ambiente personalizzati. È inoltre possibile fare riferimento ai dati sensibili archiviati in AWS Secrets ManagerAWS Systems Manager Parameter Store come variabili di ambiente. Per ulteriori informazioni sulla creazione di variabili di ambiente, vedereRiferimento alle variabili di ambiente. -
Ruolo dell'istanza: se il codice dell'applicazione effettua chiamate a qualsiasi AWS servizio, utilizzando le API del servizio o uno degli AWS SDK, crea un ruolo di istanza utilizzando AWS Identity and Access Management (IAM). Quindi, collegalo al servizio App Runner quando lo crei. AWS Includi tutte le autorizzazioni di azione di servizio richieste dal codice nel tuo ruolo di istanza. Per ulteriori informazioni, consulta Ruolo dell'istanza.
Linee guida di sviluppo del codice
Prendi in considerazione queste linee guida quando sviluppi codice per un'applicazione web App Runner.
-
Progetta codice stateless: progetta l'applicazione web che distribuisci sul tuo servizio App Runner in modo che sia stateless. Il codice dovrebbe presupporre che nessuno stato persista oltre la durata dell'elaborazione di una singola richiesta web in entrata.
-
Eliminazione dei file temporanei: i file creati vengono archiviati in un file system e occupano parte dell'allocazione dello spazio di archiviazione del servizio. Per evitare out-of-storage errori, non conservate i file temporanei per periodi prolungati. Quando prendi decisioni sulla memorizzazione dei file nella cache, bilancia le dimensioni dello storage con la velocità di gestione delle richieste.
-
Avvio dell'istanza: App Runner fornisce cinque minuti di avvio dell'istanza. L'istanza deve ascoltare le richieste sulle porte di ascolto configurate ed essere integra entro cinque minuti dall'avvio. Durante l'avvio, alle istanze di App Runner viene allocata una CPU virtuale (vCPU) in base alla configurazione della vCPU. Per ulteriori informazioni sulla configurazione delle vCPU disponibili, vedere. Configurazioni supportate da App Runner
Una volta avviata correttamente, l'istanza entra in uno stato di inattività e attende le richieste. Il pagamento viene effettuato in base alla durata di avvio dell'istanza, con un addebito minimo di un minuto per avvio dell'istanza. Per informazioni sui prezzi, consultare Prezzi di AWS App Runner
.