Infrastruttura come codice (IaC) - 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à.

Infrastruttura come codice (IaC)

Con Infrastructure as Code (IaC), puoi automatizzare l'implementazione e la gestione delle tue AWS risorse, comprese le applicazioni serverless. IaC consente di definire l'infrastruttura utilizzando il codice, semplificando la versione, la condivisione e la replica delle distribuzioni. Questo approccio ti aiuta a:

  • Accelera il ciclo di sviluppo

  • Semplifica la gestione della configurazione

  • Migliora l'affidabilità e la coerenza delle tue implementazioni

Strumenti IaC per applicazioni serverless AWS

AWS offre diversi strumenti IaC per aiutarti a creare, implementare e gestire le tue risorse cloud. Questa sezione spiega come AWS SAM si inserisce in questo ecosistema e come funziona con altri strumenti AWS IaC.

AWS CloudFormation

Utilizzando AWS CloudFormation, puoi modellare e fornire l'intera AWS infrastruttura con modelli YAML o JSON. AWS CloudFormation gestisce automaticamente la creazione, gli aggiornamenti e l'eliminazione delle risorse. Quando distribuisci AWS SAM le applicazioni, AWS CloudFormation elabora i modelli trasformati per creare e gestire le tue risorse.

AWS Serverless Application Model (AWS SAM)

AWS SAM consente di creare applicazioni serverless con una sintassi semplificata per la definizione di risorse serverless. È possibile utilizzare AWS SAM modelli per eseguire il provisioning di funzioni Lambda APIs, database e sorgenti di eventi utilizzando una sintassi YAML concisa. AWS SAM trasforma questi modelli in modelli durante la distribuzione. AWS CloudFormation

Nota

Sebbene sia AWS SAM specializzato in applicazioni serverless, puoi utilizzare qualsiasi tipo di AWS CloudFormation risorsa nei tuoi modelli. AWS SAM Ciò offre la flessibilità necessaria per includere risorse non serverless quando necessario.

AWS Cloud Development Kit (AWS CDK)

Con AWS CDK, puoi definire la tua infrastruttura serverless utilizzando linguaggi di programmazione familiari come Python TypeScript, Java, C#/.Net o Go. È possibile utilizzare costrutti di programmazione come loop e condizioni per definire l'infrastruttura e generare modelli per l'implementazione. AWS CDK AWS CloudFormation È possibile utilizzare il AWS SAMCLI per testare ed eseguire il debug localmente delle applicazioni create con. AWS CDK Per ulteriori informazioni, consulta Testare localmente le applicazioni CDK.

Confronto degli strumenti IaC per applicazioni serverless

Quando scegli uno strumento IaC per le tue applicazioni serverless, considera le preferenze del tuo team, i requisiti del progetto e i flussi di lavoro esistenti. La tabella seguente confronta le caratteristiche chiave degli strumenti AWS IaC per lo sviluppo senza server:

Strumento

Uso primario

Ideale per

Funziona con AWS SAM

Quando scegliere

AWS CloudFormation

Gestire AWS un'infrastruttura complessa

Applicazioni che richiedono un controllo dettagliato delle AWS risorse

AWS SAM i modelli si trasformano in AWS CloudFormation modelli durante la distribuzione

Per un controllo granulare delle risorse non serverless

AWS SAM

Sviluppo di applicazioni serverless

Team che creano applicazioni serverless utilizzando Lambda

Funzionalità nativa

Quando ci si concentra principalmente su architetture serverless con funzioni Lambda, API Gateway e altre risorse serverless APIs

AWS CDK

Definizione dell'infrastruttura utilizzando linguaggi di programmazione

Team che preferiscono i linguaggi tipizzati e un approccio basato sul codice

Genera AWS SAM modelli e usali per i test AWS SAMCLI

Quando è necessaria la definizione di un'infrastruttura programmatica o una logica di configurazione delle risorse complessa

Nota

Sebbene questa guida si concentri sugli strumenti IaC AWS nativi, Terraform è un'altra popolare soluzione IaC che può essere utilizzata per definire applicazioni serverless. AWS SAMCLISupporta il test locale delle funzioni Lambda definite in Terraform. Per ulteriori informazioni, consulta AWS SAMCLITerraformsupporto.

Ulteriori informazioni

  • Per saperne di più sulle DevOps pratiche su AWS, vedi Introduzione a on DevOps AWS

  • Per informazioni sull'utilizzo di Lambda con diversi strumenti IAc, consulta Using Lambda with infrastructure as code (IaC)