Implementazione di applicazioni serverless - AWS Serverless Application Model

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à.

Implementazione di applicazioni serverless

AWS SAMutilizza AWS CloudFormation come meccanismo di distribuzione sottostante. Per ulteriori informazioni, consulta Che cos'è AWS CloudFormation? nella Guida per l'utente di AWS CloudFormation. Gli input standard per la distribuzione di applicazioni serverless sono gli artefatti di compilazione creati utilizzando il comando. sam build Per ulteriori informazioni su sam build, consulta Creazione di applicazioni serverless.

È possibile distribuire l'applicazione manualmente utilizzando i comandi dell'interfaccia a riga di AWS SAM comando (CLI). È inoltre possibile automatizzare le distribuzioni dell'applicazione utilizzando un sistema di integrazione e distribuzione continue (CI/CD). È possibile utilizzare molti sistemi CI/CD comuni per la distribuzione di AWS SAM applicazioni, tra cui AWS CodePipelineJenkins, CI/CD e Actions. GitLab GitHub

Implementazione mediante sistemi CI/CD

AWS SAMaiuta le organizzazioni a creare pipeline per i loro sistemi CI/CD preferiti, in modo che possano sfruttare i vantaggi di CI/CD con il minimo sforzo, ad esempio accelerando la frequenza di implementazione, abbreviando i tempi di implementazione, abbreviando i tempi di implementazione per le modifiche e riducendo gli errori di implementazione.

AWS SAMsemplifica le attività CI/CD per le applicazioni serverless con l'aiuto della creazione di immagini di container. Le immagini AWS SAM fornite includono gli AWS SAM CLI strumenti di compilazione per una serie di runtime supportati. AWS Lambda Ciò semplifica la creazione e il pacchetto di applicazioni serverless utilizzando. AWS SAM CLI Queste immagini riducono inoltre la necessità per i team di creare e gestire le proprie immagini per i sistemi CI/CD. Per ulteriori informazioni sulla AWS SAM creazione di immagini dei container, consulta. Archivi di immagini

Diversi sistemi CI/CD supportano la AWS SAM creazione di immagini dei container. Il sistema CI/CD da utilizzare dipende da diversi fattori. Questi includono se l'applicazione utilizza un singolo runtime o più runtime o se si desidera creare l'applicazione all'interno di un'immagine del contenitore o direttamente su una macchina host, una macchina virtuale (VM) o un host bare metal.

AWS SAMfornisce inoltre una serie di modelli di pipeline predefiniti per più sistemi CI/CD che racchiudono le migliori pratiche di implementazione. AWS Questi modelli di pipeline predefiniti utilizzano formati di configurazione delle pipeline JSON/YAML standard e le best practice integrate aiutano a eseguire distribuzioni con più account e più regioni e a verificare che le pipeline non possano apportare modifiche involontarie all'infrastruttura.

Sono disponibili due opzioni principali AWS SAM da utilizzare per distribuire le applicazioni serverless: 1) modificare la configurazione della pipeline esistente per utilizzare AWS SAM CLI i comandi o 2) generare una configurazione di pipeline CI/CD di esempio da utilizzare come punto di partenza per la propria applicazione.

Per ulteriori informazioni su queste opzioni, consulta i seguenti argomenti:

Distribuzione tramite CLI AWS SAM

Dopo aver sviluppato e testato l'applicazione serverless a livello locale, è possibile distribuire l'applicazione utilizzando il comando. sam deploy

Per AWS SAM guidarvi nella distribuzione con istruzioni, specificate il flag. --guided Quando specifichi questo flag, il sam deploy comando comprime gli elementi dell'applicazione, li carica su Amazon Simple Storage Service (Amazon S3) (per archivi di file.zip) o su Amazon Elastic Container Registry (Amazon ECR) (per immagini di container). Il comando distribuisce quindi l'applicazione nel cloud. AWS

Esempio:

# Deploy an application using prompts: sam deploy --guided

Risoluzione dei problemi di implementazione utilizzando il AWS SAMCLI

AWS SAMCLIerrore: «Vincoli di sicurezza non soddisfatti»

Durante l'esecuzionesam deploy --guided, ti viene posta la domanda. HelloWorldFunction may not have authorization defined, Is this okay? [y/N] Se rispondi a questa richiesta con N (la risposta predefinita), viene visualizzato il seguente errore:

 
Error: Security Constraints Not Satisfied
            

Il messaggio ti informa che l'applicazione che stai per distribuire potrebbe avere un'API Amazon API Gateway configurata senza autorizzazione. Rispondendo N a questa richiesta, stai dicendo che non va bene.

Per risolvere questo problema, sono disponibili le seguenti opzioni:

  • Configura la tua applicazione con autorizzazione. Per informazioni sulla configurazione dell'autorizzazione, vedereControllo dell'accesso alle API API Gateway.

  • Rispondi a questa domanda indicando che sei d'accordo con la distribuzione di un'applicazione con un'API API Gateway configurata senza autorizzazione. Y

Implementazioni graduali

Se si desidera distribuire l'AWS SAMapplicazione gradualmente anziché tutto in una volta, è possibile specificare le configurazioni di distribuzione appropriate. AWS CodeDeploy Per ulteriori informazioni, consulta Lavorare con le configurazioni di distribuzione CodeDeploy nella Guida per l'AWS CodeDeployutente.

Per informazioni sulla configurazione AWS SAM dell'applicazione per una distribuzione graduale, consulta. Implementazione graduale di applicazioni serverless

Ulteriori informazioni

Per esempi pratici di implementazione di applicazioni serverless, consulta quanto segue tratto da The Complete Workshop: AWS SAM

  • Modulo 3 - Distribuzione manuale: scopri come creare, impacchettare e distribuire un'applicazione serverless utilizzando il. AWS SAM CLI

  • Modulo 4 - CI/CD: scopri come automatizzare le fasi di creazione, pacchetto e distribuzione creando una pipeline di integrazione e distribuzione continue (CI/CD).