Modello AWS Sam

Modello AWS Sam

Un'applicazione senza server può essere creata utilizzando i servizi forniti da AWS come il modello di applicazione senza server senza server (SAM). AWS fornisce AWS SAM CLI per lo sviluppo di applicazioni basate su SAM. Facilita un ambiente di esecuzione simile a Lambda per le applicazioni di costruzione, test e debug fornite dai modelli SAM. Inoltre, usando AWS SAM CLI possiamo distribuire l'applicazione SAM su AWS.

Cosa copriremo?

In questa guida esploreremo il modello AWS Sam.

Cos'è AWS Sam?

AWS SAM viene utilizzato per lo sviluppo di applicazioni senza server su AWS. Sia Sam che Sam CLI sono sotto una licenza open source. SAM definisce le risorse utilizzate nelle applicazioni senza server. Ha brevi sintassi per denotare mapping API, Funzioni, Database e Event Event. Le sintassi SAM vengono trasformate e ampliate in sintassi AWS CloudFormation. Le applicazioni possono essere modellate utilizzando YAML. In questo modo, le applicazioni senza server possono essere costruite rapidamente.

Caratteristiche di AWS Sam

L'AWS SAM può essere integrato con altri servizi AWS e quindi ha diversi vantaggi per lo sviluppo di applicazioni senza server:

  1. Utilizzando AWS SAM, l'organizzazione dei componenti e delle risorse corrispondenti è semplificata. Si può usarlo per distribuire la configurazione tra le risorse e tutte le risorse corrispondenti possono essere distribuite collettivamente.
  1. Durante la distribuzione, le sintassi SAM vengono ampliate nelle sintassi native di CloudFormation. Questo ci fornisce l'opzione di distribuzione affidabile con CloudFormation.
  1. Possiamo sviluppare applicazioni senza server in molte lingue di runtime. Con SAM CLI possiamo costruire localmente, pilota e correggere le applicazioni senza server. Inoltre, la CLI SAM può essere integrata con gli strumenti forniti da AWS.
  1. AWS SAM CLI può essere installato su molti importanti Distri, MAC e Windows basati su Linux.

Guardando nel modello Sam

Un modello SAM AWS è molto simile al modello AWS CloudFormation, tuttavia ci sono alcune differenze importanti tra i due in termini di sezioni modello seguenti:

  1. Sezione di trasformazione: Un modello SAM AWS utilizza una dichiarazione esplicita del modulo, trasformazione: AWS :: Serverless-2016-10-31, questa dichiarazione specifica che questo modello di formazione cloud è un modello AWS SAM.
  1. Sezione globale: AWS Sam ha una sezione globale unica che dichiara le risorse che hanno configurazioni comuni. La sezione Globals funziona con AWS :: Serverless :: Function, AWS :: Serverless :: API, AWS :: Serverless :: Httpapi e AWS :: Serverless :: Risorse simpatiche.
  1. Sezione risorse: La sezione Risorse del modello AWS SAM può anche contenere risorse di formazione cloud.
  1. Sezione Parametri: Il modello SAM contiene una sezione Parametri per il passaggio dei valori in fase di esecuzione. Questa sezione contiene oggetti che rendono il comando "SAM Disploy -guidato" per produrre ulteriori istruzioni a un utente.

Le sezioni dei modelli rimanenti ..

Accanto alle sezioni sopra menzionate, le sezioni rimanenti vanno con la sezione file modello di formazione cloud con il nome corrispondente. Il modello AWS Sam richiede solo il Trasforma e sezioni di risorse come must-have. Tuttavia, possiamo anche aggiungere altre sezioni. Oltre alla sezione sopra, possiamo anche avere la sezione di seguito indicata nel modello AWS Sam:

  1. Descrizione: Contiene una descrizione opzionale del modello.
  1. Metadati: È anche una sezione opzionale che fornisce ulteriori informazioni sul modello.
  1. Mappature: Una mappatura dei tasti con i loro valori corrispondenti per specificare i valori dei parametri condizionali.
  1. Condizioni: Contiene regole o requisiti che governano se specifico Le risorse vengono generate o se le proprietà specifiche di una risorsa vengono assegnate un valore durante la creazione o l'aggiornamento di uno stack.
  1. Output: Dichiara i valori che vengono restituiti quando vengono visualizzate le proprietà di uno stack.

Le sezioni del modello discusse sopra possono essere aggiunte in qualsiasi ordine. Tuttavia, si dovrebbe attenersi a un ordine logico. AWS SAM CLI ha un file di configurazione del formato di file Toml. Questo file, chiamato come samconfig.Toml, detiene i parametri predefiniti per i comandi SAM CLI.

Per verificare un modello SAM AWS, utilizzare il formato di comando:

Sam Convalida [Opzioni]

Esempio Modello SAM

Qui ci sono modelli di campionamento di AWS SAM contenente sezioni specifiche e le corrispondenti istruzioni del campione che appare con il 'SAM distribuire -guidato'Comando:

Sezione Parametri:

Parametri:
Our PAR:
Tipo: stringa
Predefinito: ourpalval
Prompt di output del campione:
Parametro ourpar [ourparval]:

Sezione Risorse:

Risorse:
Ciao mondo:
Tipo: AWS :: Serverless :: Function
Proprietà:
Codeuri: hello_world/
Handler: app.lambda_handler
Runtime: Python3.7
CodesigningConfigarn: Arn: AWS: Lambda: US-EAST-1: XXXXXXXXXXX: CODE-SIGN-CONFIG: CSC-12E12345DB1234567
Prompt di output del campione:
#FOUND CODICE FIGNING CONFIGURAZIONI Nelle definizioni della funzione
Vuoi firmare il tuo codice? [Y/n]:
#Pereta Fornire i dettagli del profilo di firma per le seguenti funzioni e livelli
#Signing Dettagli del profilo per la funzione "Helloworld"
Nome del profilo di firma:
ID account proprietario del profilo di firma (facoltativo):
#Signing Dettagli del profilo per layer "Mylayer", che viene utilizzato dalle funzioni "Helloworld"
Nome del profilo di firma:
ID account proprietario del profilo di firma (facoltativo):

Conclusione

In questa guida abbiamo esplorato il modello AWS Sam. La prossima cosa che puoi provare è distribuire una semplice applicazione Hello World Serverless contenente un file modello SAM AWS.