

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à.

# Genera una CI/CD pipeline iniziale con AWS SAM
<a name="serverless-generating-example-ci-cd"></a>

Quando sei pronto per automatizzare l'implementazione, puoi utilizzare uno dei modelli di pipeline AWS SAM di avvio disponibili per generare una pipeline di distribuzione per il CI/CD sistema che scegli di utilizzare. La pipeline di distribuzione è ciò che configuri e utilizzi per automatizzare la distribuzione della tua applicazione serverless. Un modello di pipeline iniziale è preconfigurato per aiutarti a configurare rapidamente la pipeline di distribuzione per la tua applicazione serverless. 

Con un modello di pipeline iniziale, puoi generare pipeline in pochi minuti utilizzando il comando. [sam pipeline init](sam-cli-command-reference-sam-pipeline-init.md)

I modelli di pipeline starter utilizzano la JSON/YAML sintassi familiare del CI/CD sistema e incorporano best practice come la gestione degli artefatti su più account e aree e l'utilizzo della quantità minima di autorizzazioni richieste per distribuire l'applicazione. [https://github.com/features/actions](https://github.com/features/actions)

Ecco le attività di alto livello da eseguire per generare una configurazione di pipeline iniziale:

1. **Crea risorse infrastrutturali**: la tua pipeline richiede determinate AWS risorse, ad esempio l'utente e i ruoli IAM con le autorizzazioni necessarie, un bucket Amazon S3 e, facoltativamente, un repository Amazon ECR.

1. **Connetti il tuo repository Git al tuo CI/CD sistema**: il tuo CI/CD sistema deve sapere quale repository Git attiverà l'esecuzione della pipeline. Nota che questo passaggio potrebbe non essere necessario, a seconda della combinazione di repository Git e CI/CD sistema che stai utilizzando.

1. **Genera la configurazione della pipeline**: questo passaggio genera una configurazione iniziale della pipeline che include due fasi di distribuzione.

1. Esegui **il commit della configurazione della pipeline nel tuo repository Git**: questo passaggio è necessario per garantire che il CI/CD sistema sia a conoscenza della configurazione della pipeline e verrà eseguito quando verranno eseguite le modifiche.

Dopo aver generato la configurazione della pipeline di partenza e averla salvata nel tuo repository Git, ogni volta che qualcuno esegue una modifica al codice in quel repository, la pipeline verrà attivata per essere eseguita automaticamente.

L'ordine di questi passaggi e i dettagli di ogni passaggio variano in base al sistema CI/CD in uso:
+ Se si utilizza AWS CodePipeline, vedere. [Generazione di una pipeline di avviamento per AWS CodePipeline AWS SAM](serverless-generating-example-ci-cd-codepipeline.md)
+ Se utilizzi Jenkins, GitLab CI/CD, GitHub Actions o Bitbucket Pipelines, vedi. [AWS SAM Da utilizzare per generare pipeline di avvio per Jenkins, GitLab CI/CD, Actions, Bitbucket Pipelines GitHub](serverless-generating-example-ci-cd-others.md)

# Generazione di una pipeline di avviamento per AWS CodePipeline AWS SAM
<a name="serverless-generating-example-ci-cd-codepipeline"></a>

Per generare una configurazione di pipeline di avviamento per AWS CodePipeline, eseguite le seguenti attività in questo ordine:

1. Creare risorse infrastrutturali

1. Genera la configurazione della pipeline

1. Esegui il commit della configurazione della pipeline su Git

1. Connect il tuo repository Git con il tuo sistema CI/CD 

**Nota**  
La procedura seguente utilizza due AWS SAMCLI comandi, `sam pipeline bootstrap` e. `sam pipeline init` Il motivo per cui esistono due comandi è quello di gestire il caso d'uso in cui gli amministratori (ovvero gli utenti che necessitano dell'autorizzazione per configurare le AWS risorse dell'infrastruttura come gli utenti e i ruoli IAM) dispongono di maggiori autorizzazioni rispetto agli sviluppatori (ovvero gli utenti che necessitano solo dell'autorizzazione per configurare le singole pipeline, ma non le risorse di infrastruttura AWS richieste).

## Fase 1: Creare risorse infrastrutturali
<a name="generating-example-step-1"></a>

Le pipeline che utilizzano AWS SAM richiedono determinate AWS risorse, come un utente IAM e ruoli con le autorizzazioni necessarie, un bucket Amazon S3 e, facoltativamente, un repository Amazon ECR. È necessario disporre di un set di risorse infrastrutturali per ogni fase di implementazione della pipeline.

È possibile eseguire il comando seguente per facilitare questa configurazione:

```
sam pipeline bootstrap
```

**Nota**  
Esegui il comando precedente per ogni fase di distribuzione della pipeline.

## Fase 2: Generare la configurazione della pipeline
<a name="generating-example-step-2"></a>

Per generare la configurazione della pipeline, esegui il comando seguente:

```
sam pipeline init
```

## Passaggio 3: Esegui il commit della configurazione della pipeline nell'archivio Git
<a name="generating-example-step-3"></a>

Questo passaggio è necessario per garantire che il CI/CD sistema sia a conoscenza della configurazione della pipeline e venga eseguito quando vengono apportate le modifiche.

## Passaggio 4: Connect il repository Git al sistema CI/CD
<a name="generating-example-step-4"></a>

Perché ora AWS CodePipeline puoi creare la connessione eseguendo il seguente comando:

```
sam deploy -t codepipeline.yaml --stack-name <pipeline-stack-name> --capabilities=CAPABILITY_IAM --region <region-X>
```

Se utilizzi GitHub o Bitbucket, dopo aver eseguito il **sam deploy** comando in precedenza, completa la connessione seguendo la procedura riportata in **Per completare una connessione disponibile nell'argomento Aggiornare una connessione** [in sospeso](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) nella guida per l'utente della *console Developer Tools*. Inoltre, memorizza una copia del file `CodeStarConnectionArn` dall'output del **sam deploy** comando, poiché ti servirà se desideri utilizzarlo AWS CodePipeline con un altro ramo di. `main`

## Configurazione di altre filiali
<a name="configuring-other-branches"></a>

Per impostazione predefinita, AWS CodePipeline utilizza il `main` ramo con AWS SAM. Se si desidera utilizzare un ramo diverso da`main`, è necessario eseguire nuovamente il **sam deploy** comando. Nota che, a seconda del repository Git che stai utilizzando, potresti dover fornire anche: `CodeStarConnectionArn`

```
# For GitHub and Bitbucket
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name> CodeStarConnectionArn=<codestar-connection-arn>"

# For AWS CodeCommit
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name>"
```

## Ulteriori informazioni
<a name="serverless-generating-cicd-learn"></a>

*Per un esempio pratico di configurazione di una CI/CD pipeline, vedi [CI/CD](https://catalog.workshops.aws/complete-aws-sam/en-US/module-4-cicd) with in The Complete Workshop. AWS CodePipeline AWS SAM *

# AWS SAM Da utilizzare per generare pipeline di avvio per Jenkins, GitLab CI/CD, Actions, Bitbucket Pipelines GitHub
<a name="serverless-generating-example-ci-cd-others"></a>

Per generare una configurazione di pipeline iniziale per Jenkins, GitLab CI/CD, Actions o Bitbucket Pipelines, esegui le seguenti attività in questo ordine GitHub :

1. Crea risorse infrastrutturali

1. Connect il tuo repository Git con il tuo sistema CI/CD 

1. Crea oggetti credenziali

1. Genera la configurazione della pipeline

1. Esegui il commit della configurazione della pipeline nel repository Git

**Nota**  
La procedura seguente utilizza due AWS SAMCLI comandi, e. `sam pipeline bootstrap` `sam pipeline init` Il motivo per cui esistono due comandi è quello di gestire il caso d'uso in cui gli amministratori (ovvero gli utenti che necessitano dell'autorizzazione per configurare le AWS risorse dell'infrastruttura come gli utenti e i ruoli IAM) dispongono di maggiori autorizzazioni rispetto agli sviluppatori (ovvero gli utenti che necessitano solo dell'autorizzazione per configurare le singole pipeline, ma non le risorse di infrastruttura AWS richieste).

## Fase 1: Creare risorse infrastrutturali
<a name="generating-example-step-1"></a>

Le pipeline che utilizzano AWS SAM richiedono determinate AWS risorse, come un utente IAM e ruoli con le autorizzazioni necessarie, un bucket Amazon S3 e, facoltativamente, un repository Amazon ECR. È necessario disporre di un set di risorse infrastrutturali per ogni fase di implementazione della pipeline.

È possibile eseguire il comando seguente per facilitare questa configurazione:

```
sam pipeline bootstrap
```

**Nota**  
Esegui il comando precedente per ogni fase di distribuzione della pipeline.

È necessario acquisire le AWS credenziali (ID chiave e chiave segreta) per gli utenti della pipeline per ogni fase di distribuzione della pipeline, poiché sono necessarie per i passaggi successivi.

## Passaggio 2: Connect il repository Git al sistema CI/CD
<a name="generating-example-step-2"></a>

La connessione del repository Git al CI/CD sistema è necessaria in modo che il CI/CD sistema possa accedere al codice sorgente dell'applicazione per le build e le distribuzioni.

**Nota**  
Puoi saltare questo passaggio se utilizzi una delle seguenti combinazioni, poiché la connessione viene eseguita automaticamente:  
GitHub Azioni con repository GitHub 
GitLab CI/CD con repository GitLab 
Bitbucket Pipelines con un repository Bitbucket

Per connettere il tuo repository Git al tuo CI/CD sistema, esegui una delle seguenti operazioni:
+ Se usi Jenkins, consulta la [documentazione di Jenkins](https://www.jenkins.io/doc/book/pipeline/multibranch/) per «Aggiungere una sorgente filiale».
+ Se utilizzi GitLab CI/CD e un repository Git diverso da quello GitLab, consulta la [GitLabdocumentazione](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/) per «connettere un repository esterno».

## Fase 3: Creare oggetti di credenziali
<a name="generating-example-step-3"></a>

Ogni CI/CD sistema ha il proprio modo di gestire le credenziali necessarie al CI/CD sistema per accedere al tuo repository Git.

Per creare gli oggetti di credenziali necessari, esegui una delle seguenti operazioni:
+ Se utilizzi Jenkins, crea un'unica «credenziale» che memorizzi sia l'ID della chiave che la chiave segreta. **Segui le istruzioni nel AWS SAM blog [Building a Jenkins Pipeline with](https://aws.amazon.com/blogs/compute/building-a-jenkins-pipeline-with-aws-sam/), nella sezione Configure Jenkins.** Avrai bisogno del «Credential ID» per il passaggio successivo.
+ Se utilizzi GitLab CI/CD, crea due «variabili protette», una per ogni ID chiave e chiave segreta. Segui le istruzioni nella [GitLab documentazione](https://docs.gitlab.com/ee/ci/variables/): per il passaggio successivo avrai bisogno di due «chiavi variabili».
+ Se utilizzi GitHub Actions, crea due «segreti crittografati», uno per ciascuna chiave e chiave segreta. Segui le istruzioni nella [GitHubdocumentazione](https://docs.github.com/en/actions/reference/encrypted-secrets): per il passaggio successivo ti serviranno due «nomi segreti».
+ Se utilizzi Bitbucket Pipelines, crea due «variabili sicure», una per ogni ID chiave e chiave segreta. Segui le istruzioni in [Variabili e segreti](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets): per il passaggio successivo ti serviranno due «nomi segreti».

## Fase 4: Generazione della configurazione della pipeline
<a name="generating-example-step-4"></a>

Per generare la configurazione della pipeline, esegui il comando seguente. Dovrai inserire l'oggetto credenziale che hai creato nel passaggio precedente:

```
sam pipeline init
```

## Passaggio 5: Esegui il commit della configurazione della pipeline nell'archivio Git
<a name="generating-example-step-5"></a>

Questo passaggio è necessario per garantire che il CI/CD sistema sia a conoscenza della configurazione della pipeline e venga eseguito una volta apportate le modifiche.

## Ulteriori informazioni
<a name="serverless-generating-other-cicd-learn"></a>

*Per un esempio pratico di configurazione di una CI/CD pipeline utilizzandoGitHub Actions, vedi [CI/CD with GitHub](https://s12d.com/sam-ws-en-gh) in The Complete Workshop. AWS SAM *