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)