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à.
Tutorial: crea una pipeline che pubblichi la tua applicazione serverless su AWS Serverless Application Repository
Puoi utilizzarla AWS CodePipeline per fornire continuamente la tua applicazione AWS SAM serverless a. AWS Serverless Application Repository
Importante
Come parte della creazione di una pipeline, per gli artefatti verrà utilizzato un bucket di artefatti S3 fornito dal cliente. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso da quello della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di utenti sicuri e affidabili. Account AWS
Questo tutorial mostra come creare e configurare una pipeline per creare un'applicazione serverless ospitata su e pubblicarla automaticamente. GitHub AWS Serverless Application Repository La pipeline utilizza GitHub come provider di origine e CodeBuild come provider di build. Per pubblicare la tua applicazione serverless su AWS Serverless Application Repository, distribuisci un'applicazione
Importante
Molte delle azioni aggiunte alla pipeline in questa procedura coinvolgono AWS risorse che è necessario creare prima di creare la pipeline. AWS le risorse per le tue azioni di origine devono sempre essere create nella stessa AWS regione in cui crei la pipeline. Ad esempio, se crei la pipeline nella regione Stati Uniti orientali (Ohio), il tuo CodeCommit repository deve trovarsi nella regione Stati Uniti orientali (Ohio).
Puoi aggiungere azioni interregionali quando crei la pipeline. AWS le risorse per le azioni interregionali devono trovarsi nella stessa AWS regione in cui intendi eseguire l'azione. Per ulteriori informazioni, consulta Aggiungere un'azione interregionale in CodePipeline.
Prima di iniziare
In questo tutorial si presuppone quanto segue.
-
Familiarità con AWS Serverless Application Model (AWS SAM) e AWS Serverless Application Repository.
-
Hai un'applicazione serverless ospitata in GitHub che hai pubblicato AWS Serverless Application Repository utilizzando. AWS SAM CLI Per pubblicare un'applicazione di esempio su AWS Serverless Application Repository, consulta Quick Start: Publishing Applications nella AWS Serverless Application Repository Developer Guide. Per pubblicare la tua applicazione su AWS Serverless Application Repository, consulta Pubblicazione di applicazioni tramite la AWS SAM CLI nella Guida per gli AWS Serverless Application Model sviluppatori.
Fase 1: creazione di un file buildspec.yml
Create un buildspec.yml
file con i seguenti contenuti e aggiungetelo all' GitHub archivio dell'applicazione serverless. Replace (Sostituisci) template.yml
con il modello della tua applicazione e AWS SAM bucketname
con il bucket S3 in cui è archiviata l'applicazione in pacchetto.
version: 0.2 phases: install: runtime-versions: python: 3.8 build: commands: - sam package --template-file
template.yml
--s3-bucketbucketname
--output-template-file packaged-template.yml artifacts: files: - packaged-template.yml
Fase 2: creazione e configurazione della pipeline
Segui questi passaggi per creare la tua pipeline nel luogo in Regione AWS cui desideri pubblicare l'applicazione serverless.
Accedi a AWS Management Console e apri la CodePipeline console all'indirizzo. https://console.aws.amazon.com/codepipeline/
-
Se necessario, passa al Regione AWS punto in cui desideri pubblicare l'applicazione serverless.
-
Scegliere Create pipeline (Crea pipeline). Nella pagina Choose pipeline settings (Scegli impostazioni della pipeline), in Pipeline name (Nome pipeline), immetti il nome della pipeline.
-
Nel tipo di pipeline, scegliete V2. Per ulteriori informazioni, consulta Tipi di tubazioni. Scegli Next (Successivo).
-
In Ruolo di servizio, scegli Nuovo ruolo di servizio in cui consentire CodePipeline la creazione di un ruolo di servizio. IAM
-
Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).
-
Nella pagina Aggiungi fase di origine, in Provider di origine, scegli GitHub.
-
In Connessione, scegli una connessione esistente o creane una nuova. Per creare o gestire una connessione per l'azione GitHub sorgente, consultaGitHub connessioni.
-
In Repository, scegli il tuo repository GitHub di origine.
-
In Branch, scegli la tua GitHub filiale.
-
Lascia le impostazioni predefinite rimanenti per l'azione di origine. Scegli Next (Successivo).
-
Nella pagina Add build stage (Aggiungi fase di compilazione), aggiungi una fase di compilazione:
-
In Build provider (Provider compilazione), scegli AWS CodeBuild. Per Region (Regione), utilizza la regione della pipeline.
-
Seleziona Crea progetto.
-
In Project name (Nome progetto) immettere un nome per questo progetto di compilazione.
-
In Environment image (Immagine ambiente), scegli Managed image (Immagine gestita). In Operating system (Sistema operativo), seleziona Ubuntu.
-
Per Runtime e Runtime versione (Versione runtime), scegli il runtime e la versione richiesti per l'applicazione serverless.
-
Per Service Role (Ruolo del servizio), scegli New service role (Nuovo ruolo del servizio).
-
Per Build specifications (Compila specifiche), scegli Use a buildspec file (Usa un file buildspec).
-
Scegli Continua a. CodePipeline In questo modo si apre la CodePipeline console e viene creato un CodeBuild progetto che utilizza la console presente
buildspec.yml
nel repository per la configurazione. Il progetto di compilazione utilizza un ruolo di servizio per gestire le Servizio AWS autorizzazioni. Questa operazione potrebbe richiedere un paio di minuti. -
Scegli Next (Successivo).
-
-
Nella pagina Add deploy stage (Aggiungi fase di distribuzione), scegli Skip deploy stage (Ignora fase di distribuzione), quindi accetta il messaggio di avviso scegliendo Skip (Ignora). Scegli Next (Successivo).
-
Scegliere Create pipeline (Crea pipeline). Dovresti visualizzare uno schema che mostra le fasi di origine e compilazione.
-
Concedi al ruolo CodeBuild di servizio l'autorizzazione ad accedere al bucket S3 in cui è archiviata l'applicazione in pacchetto.
-
Nella fase di creazione della nuova pipeline, scegli. CodeBuild
-
Seleziona la scheda Build details (Dettagli compilazione).
-
In Ambiente, scegli il ruolo CodeBuild di servizio per aprire la IAM console.
-
Espandi la selezione per
CodeBuildBasePolicy
e scegli Edit policy (Modifica policy). -
Scegli JSON.
-
Aggiungi una nuova istruzione della policy con i seguenti contenuti. L'istruzione consente di CodeBuild inserire oggetti nel bucket S3 in cui è archiviata l'applicazione in pacchetto. Replace (Sostituisci)
bucketname
con il nome del tuo bucket S3.{ "Effect": "Allow", "Resource": [ "arn:aws:s3:::
bucketname
/*" ], "Action": [ "s3:PutObject" ] } -
Scegli Verifica policy.
-
Scegli Save changes (Salva modifiche).
-
Fase 3: distribuzione dell'applicazione di pubblicazione
Segui questi passaggi per distribuire l'applicazione che contiene la funzione Lambda che esegue la pubblicazione su. AWS Serverless Application RepositoryQuesta applicazione è aws-serverless-codepipeline-serverlessrepo -publish.
Nota
È necessario distribuire l'applicazione nella Regione AWS stessa pipeline.
-
Vai alla pagina delle applicazioni
e scegli Deploy (Distribuisci). -
Seleziona Riconosco che questa app crea ruoli personalizzati IAM.
-
Seleziona Deploy (Implementa).
-
Scegli View AWS CloudFormation Stack per aprire la AWS CloudFormation console.
-
Espandere la sezione Resources (Risorse). Vedi ServerlessRepoPublish, che è del tipo AWS: :Lambda: :Function. Prendi nota dell'ID fisico di questa risorsa per la prossima fase. Utilizzi questo ID fisico quando crei la nuova azione di pubblicazione in. CodePipeline
Fase 4: creazione dell'operazione di pubblicazione
Segui questi passaggi per creare l'operazione di pubblicazione nella pipeline.
-
Apri la CodePipeline console all'indirizzo https://console.aws.amazon.com/codepipeline/
. -
Nella sezione di navigazione a sinistra, scegli la pipeline che desideri modificare.
-
Scegli Modifica.
-
Dopo l'ultima fase della pipeline corrente, scegli + Add stage (+ Aggiungi fase). In Stage name (Nome fase) immetti un nome, ad esempio
Publish
, quindi scegli Add stage (Aggiungi fase). -
Nella nuova fase, scegliere + Add action group (Aggiungi gruppo di operazioni).
-
Immetti un nome per l'operazione. Da Action provider (Provider operazione), in Invoke (Richiama), scegli AWS Lambda.
-
Da Inserisci artefatti, scegli. BuildArtifact
-
Da Nome funzione, scegli l'ID fisico della funzione Lambda che hai annotato nel passaggio precedente.
-
Scegli Save (Salva) per l'operazione.
-
Scegli Done (Fatto) per la fase.
-
In alto a destra, scegli Save (Salva).
-
Per verificare la pipeline, apporta una modifica all'applicazione in. GitHub Ad esempio, modifica la descrizione dell'applicazione nella
Metadata
sezione del file AWS SAM modello. Applica la modifica e inviala alla tua GitHub filiale. In questo modo viene attivata la pipeline per l'esecuzione. Una volta che la pipeline è completa, controlla che l'applicazione sia stata aggiornata con la modifica in AWS Serverless Application Repository.