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à.
Quick Start: pubblicazione delle applicazioni
Questa guida illustra i passaggi per scaricare, compilare, testare e pubblicare un'applicazione serverless di esempio in AWS Serverless Application Repository utilizzando l'interfaccia a riga di comando AWS SAM. Puoi utilizzare questa applicazione di esempio come punto di partenza per lo sviluppo e la pubblicazione di una tua applicazione serverless.
Panoramica
La procedura seguente illustra come scaricare, compilare e pubblicare un'applicazione serverless di esempio:
-
Inizializzazione. Scaricare un'applicazione di esempio dal modello utilizzando
sam init
. -
Test in locale. Testare l'applicazione localmente utilizzando
sam local invoke
e/osam local start-api
. Nota che con questi comandi, anche se la funzione Lambda viene richiamata localmente, legge e scriveAWS sulle risorse nelAWS Cloud. -
Pacchetto. Quando sei soddisfatto della tua funzione Lambda, raggruppa la funzione Lambda, ilAWS SAM modello e tutte le dipendenze in un pacchettoAWS CloudFormation di distribuzione utilizzando
sam package
. In questo passaggio si includono anche le informazioni sull'applicazione che verrà caricata in AWS Serverless Application Repository. -
Pubblicazione. Pubblicare l'applicazione in AWS Serverless Application Repository utilizzando
sam publish
. Al termine di questo passaggio, puoi visualizzare la tua applicazioneAWS Serverless Application Repository e distribuirla sulAWS cloud utilizzandoAWS Serverless Application Repository.
L'esempio Applicazione Hello World nella prossima sezione illustra i passaggi per la creazione e la pubblicazione di un'applicazione serverless.
Applicazione Hello World
In questo esercizio, scarichi e testi un'applicazione Hello World serverless che rappresenta un semplice back-end dell'API. Dispone di un endpoint Amazon API Gateway che supporta un'operazione GET e e Lambda. Quando una richiesta GET viene inviata all'endpoint, Amazon API Gateway richiama la funzione Lambda. Quindi, AWS Lambda esegue la funzione che restituisce semplicemente il messaggio hello world
.
L'applicazione ha i seguenti componenti:
-
UnAWS SAM modello che definisce dueAWS risorse per l'applicazione Hello World: un servizio API Gateway con un'operazione GET e una funzione Lambda. Il modello definisce anche la mappatura tra l'operazione GET di API Gateway e la funzione Lambda.
-
Il codice dell'applicazione scritto in Python.
Prima di iniziare
Assicurati di avere la configurazione necessaria per questo esercizio:
-
È necessario disporre di unAWS account con un utente IAM che dispone di autorizzazioni di amministratore. Vedi Configurare unAWS account.
-
Devi avere l'interfaccia a riga di comando (CLI) AWS SAM installata. Consulta le informazioni per l'installazione della CLI AWS SAM.
-
Deve essere installata la versione 1.16.77 o successiva di AWS CLI. Consulta Installazione di AWS Command Line Interface.
Fase 1: inizializzare l'applicazione
In questa sezione scarichi l'applicazione di esempio che consiste in un modello AWS SAM e un codice dell'applicazione.
Per inizializzare l'applicazione
-
Eseguire il comando seguente al prompt dei comandi dell'interfaccia a riga di comando AWS SAM.
sam init --runtime python3.6
-
Esaminare il contenuto della directory creata dal comando (
sam-app/
):-
template.yaml
— Definisce dueAWS risorse necessarie all'applicazione Hello World: una funzione Lambda e un endpoint API Gateway che supporta un'operazione GET. Il modello definisce anche la mappatura tra le due risorse. -
Contenuto relativo al codice dell'applicazione Hello World:
-
hello_world/
directory: contiene il codice dell'applicazione, chehello world
viene restituito quando viene eseguita.
-
Nota
Per questo esercizio, il codice dell'applicazione è scritto in Python e specifichi il runtime nel comando
init
. AWS Lambda supporta altri linguaggi per la creazione del codice dell'applicazione. Se specifichi un altro runtime supportato, il comandoinit
fornisce il codice Hello World nel linguaggio specificato e un fileREADME.md
che è possibile seguire per tale linguaggio. Per informazioni sui runtime supportati, consulta l'argomento relativo all'ambiente di esecuzione Lambda e alle librerie disponibili. -
Fase 2: testare l'applicazione localmente
Ora che hai l'applicazione AWS SAM sul tuo computer locale, segui i passaggi riportati di seguito per testarla localmente.
Per testare l'applicazione localmente
-
Avviare l'endpoint del gateway API localmente. È necessario eseguire il comando seguente dalla directory che contiene il file
template.yaml
.sam-app> sam local start-api --region us-east-1
Il comando restituisce un endpoint API Gateway, a cui è possibile inviare richieste per i test locali.
-
Testare l'applicazione. Copia l'URL dell'endpoint API Gateway, incollalo nel browser e scegli Invio. Un esempio di URL dell'endpoint API Gateway è
http://127.0.0.1:3000/hello
.API Gateway richiama localmente la funzione Lambda a cui è mappato l'endpoint. La funzione Lambda viene eseguita nel contenitore Docker locale e restituisce
hello world
. API Gateway restituisce una risposta al browser che contiene il testo.
Esercizio: modificare la stringa del messaggio
Dopo aver testato l'applicazione di esempio, puoi sperimentare una semplice modifica: cambiare la stringa di messaggio restituita.
-
Modificare il file
/hello_world/app.py
per cambiare la stringa del messaggio da'hello world'
a'Hello World!'
. -
Ricaricare l'URL di test nel browser e osservare la nuova stringa.
Noterai che il tuo nuovo codice viene caricato dinamicamente, senza dover riavviare il processo sam local
.
Fase 3: creare un pacchetto dell'applicazione
Dopo aver testato l'applicazione localmente, puoi utilizzare l'interfaccia a riga di comando AWS SAM per creare un pacchetto di distribuzione e un modello AWS SAM nel pacchetto.
Nota
Nelle fasi seguenti crei un file .zip per il contenuto della directory hello_world/
con il codice dell'applicazione. Questo file .zip è il pacchetto di distribuzione per l'applicazione serverless. Per ulteriori informazioni, consulta Creating a Deployment Package (Python) nella Guida per gliAWS Lambda sviluppatori.
Per creare un pacchetto di distribuzione Lambda
-
Aggiungere una sezione
Metadata
al file del modello AWS SAM fornendo le informazioni richieste sull'applicazione. Per ulteriori informazioni sulla sezioneMetadata
dei modelli AWS SAM, consultare le proprietà della sezione Metadata del modello AWS SAM nella Guida per gli sviluppatori di AWS Serverless Application Model.Ecco una sezione
Metadata
di esempio:Metadata: AWS::ServerlessRepo::Application: Name:
my-app
Description:hello world
Author:user1
SpdxLicenseId: Apache-2.0 LicenseUrl:LICENSE.txt
ReadmeUrl:README.md
Labels:['tests']
HomePageUrl:https://github.com/user1/my-app-project
SemanticVersion:0.0.1
SourceCodeUrl:https://github.com/user1/my-app-project
ReadmeUrl
Le proprietàLicenseUrl
and possono essere riferimenti a file locali (come nell'esempio precedente) oppure possono essere collegamenti a bucket Amazon S3 che già ospitano questi artefatti. -
Creare un bucket S3 nella posizione in cui si desidera salvare il codice nel pacchetto. Se si desidera utilizzare un bucket S3 esistente, ignorare questo passaggio.
sam-app> aws s3 mb s3://
bucketname
-
Crea il pacchetto di distribuzione delle funzioni Lambda eseguendo il seguente comando
package
AWS SAM CLI.sam-app> sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket
bucketname
Il comando esegue quanto segue:
-
Comprime il contenuto della
aws-sam/hello_world/
directory e lo carica su Amazon S3. -
Carica il pacchetto di distribuzione, il file README e il file LICENSE nel bucket Amazon S3 specificato dall'
--s3-bucket
opzione. -
Produce un nuovo file del modello, chiamato
packaged.yaml
, che viene utilizzato nella prossima fase per pubblicare l'applicazione in AWS Serverless Application Repository. Il filepackaged.yaml
modello è simile al file modello originale (template.yaml
), ma presenta una differenza fondamentale: leReadmeUrl
proprietàCodeUri
LicenseUrl
, e rimandano al bucket Amazon S3 e agli oggetti che contengono i rispettivi artefatti. Il frammento riportato di seguito tratto dal file del modello di esempiopackaged.yaml
mostra la proprietàCodeUri
:HelloWorldFunction: Type: AWS::Serverless::Function # For more information about function resources, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: s3://
bucketname
/fbd77a3647a4f47a352fcObjectGUID
...
-
Fase 4: pubblicare l'applicazione
Ora che hai creato il pacchetto di distribuzione, puoi utilizzarlo per pubblicare l'applicazione in AWS Serverless Application Repository.
Per pubblicare l'applicazione serverless in AWS Serverless Application Repository
-
Eseguire il seguente comando per pubblicare la nuova applicazione in AWS Serverless Application Repository con la prima versione creata come 0.0.1.
sam-app> sam publish \ --template packaged.yaml \ --region us-east-1
Nota
L'applicazione viene creata come privata per impostazione predefinita. È necessario condividere l'applicazione prima che altriAWS account possano visualizzare e distribuire l'applicazione. Per ulteriori dettagli sulla condivisione dell'applicazione, consulta di seguito Fasi successive.
Fasi successive
Ora che hai pubblicato l'applicazione di esempio, ecco alcune cose che potresti voler fare.
-
Visualizza la tua applicazione inAWS Serverless Application Repository: l'output del
sam publish
comando includerà un collegamentoAWS Serverless Application Repository diretto alla pagina di dettaglio dell'applicazione. Puoi anche andare alla pagina iniziale di AWS Serverless Application Repository e cercare la tua applicazione. -
Condividi la tua applicazione: poiché l'applicazione è impostata come privata per impostazione predefinita, non è visibile agli altriAWS account. Per condividere la tua candidatura con altri, devi renderla pubblica o concedere l'autorizzazione a un elenco specifico diAWS account. Per informazioni su come condividere l'applicazione utilizzando l'AWS CLI consulta AWS Serverless Application RepositoryEsempi di politiche applicative. Per informazioni sulla condivisione dell'applicazione tramite la console, consulta Condivisione di un'applicazione.
Ulteriori informazioni
Per ulteriori informazioni sulla sezione Metadata
dei modelli AWS SAM, sui comandi sam package
e sam publish
dell'interfaccia a riga di comando AWS SAM, consulta l'argomento sulla pubblicazione delle applicazioni utilizzando l'interfaccia a riga di comando AWS SAM nella Guida per gli sviluppatori di AWS Serverless Application Model.