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

Distribuzione di applicazioni serverless

AWS SAMutilizzaAWS 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 ilstessa costruzione comando. Per ulteriori informazioni su sam build, consulta Creazione di applicazioni serverless.

È possibile implementare l'applicazione manualmente utilizzandoAWS SAM comandi CLI (Command Line Interface). È inoltre possibile automatizzare implementazioni di applicazioni utilizzando un sistema di integrazione continua e distribuzione continua (CI/CD). È possibile utilizzare molti sistemi CI/CD comuni per la distribuzione diAWS SAM applicazioni AWS CodePipeline, tra cui Jenkins, GitLab CI/CD e GitHubActions.

Distribuzione tramite sistemi CI/CD

AWS SAMaiuta le organizzazioni a creare pipeline per i loro sistemi CI/CD preferiti, in modo che possano sfruttare i vantaggi del CI/CD con il minimo sforzo, come l'accelerazione della frequenza di implementazione, la riduzione dei tempi di consegna delle modifiche e la riduzione degli errori di implementazione.

AWS SAMsemplifica le attività CI/CD per le applicazioni serverless con l'aiuto della creazione di immagini di container. Le immaginiAWS SAM fornite includono laAWS SAM CLI e gli strumenti di compilazione per una serie diAWS Lambda runtime supportati. Ciò semplifica la creazione e il pacchetto di applicazioni serverless utilizzando laAWS 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 suAWS SAM build container images, consultaArchivi di immagini.

Diversi sistemi CI/CD supportano laAWS SAM creazione di immagini di 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 contenitore o direttamente su una macchina host, una macchina virtuale (VM) o un host bare metal.

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

Sono disponibili due opzioni principaliAWS SAM da utilizzare per distribuire le applicazioni serverless: 1) Modifica la configurazione della pipeline esistente per utilizzare i comandiAWS SAM CLI o 2) Generare un esempio di configurazione della pipeline CI/CD che puoi utilizzare come punto di partenza per la tua applicazione.

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

Implementazione tramiteAWS SAM CLI

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

Per fartiAWS SAM guidare nella distribuzione con istruzioni, specifica il--guided flag. Quando specifichi questo flag, ilsam deploy comando comprime gli elementi dell'applicazione e li carica su Amazon Simple Storage Service (Amazon S3) (per gli archivi di file.zip) o su Amazon Elastic Container Registry (Amazon ECR) (per contenere immagini). Il comando quindi distribuisce l'applicazione nelAWS cloud.

Esempio:

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

Risoluzione dei problemi relativi alle implementazioni tramite laAWS SAM CLI

AWS SAMErrore CLI: «Vincoli di sicurezza non soddisfatti»

Quando corrisam deploy --guided, ti viene posta la domandaHelloWorldFunction may not have authorization defined, Is this okay? [y/N]. Se rispondi a questa richiesta conN (la risposta predefinita), ricevi il seguente errore:

 
Error: Security Constraints Not Satisfied
            

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

Per risolvere il problema, sono disponibili le seguenti opzioni:

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

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

Distribuzioni graduali

Se si desidera distribuire l'AWS SAMapplicazione gradualmente anziché tutte in una volta, è possibile specificare le configurazioni di distribuzione cheAWS CodeDeploy forniscono. Per ulteriori informazioni, vedere Utilizzo delle configurazioni di distribuzione CodeDeploy nella Guida per l'AWS CodeDeployutente.

Per informazioni sulla configurazioneAWS SAM dell'applicazione per una distribuzione graduale, vedereDistribuzione graduale di delle applicazioni serverless.