

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

# Creazione di CodeCommit risorse con AWS CloudFormation
<a name="creating-resources-with-cloudformation"></a>

AWS CodeCommit è integrato con AWS CloudFormation, un servizio che consente di modellare e configurare le AWS risorse in modo da dedicare meno tempo alla creazione e alla gestione delle risorse e dell'infrastruttura. Crei un modello che descrive tutte le AWS risorse che desideri (ad esempio gli archivi) e fornisce e CloudFormation configura tali risorse per te. 

Quando lo utilizzi CloudFormation, puoi riutilizzare il modello per configurare le CodeCommit risorse in modo coerente e ripetuto. Descrivi le tue risorse una sola volta, quindi fornisci le stesse risorse più e più volte in più Account AWS aree geografiche. 

## CodeCommit e CloudFormation modelli
<a name="working-with-templates"></a>

Per fornire e configurare le risorse CodeCommit e i servizi correlati, è necessario conoscere [CloudFormation i modelli](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html). I modelli sono file di testo formattati in JSON o YAML. Questi modelli descrivono le risorse che desideri fornire negli CloudFormation stack. Se non conosci JSON o YAML, puoi usare CloudFormation Designer per iniziare a usare i modelli. CloudFormation Per ulteriori informazioni, consulta [Che cos’è CloudFormation Designer?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html) nella *Guida per l’utente di AWS CloudFormation *.

CodeCommit supporta la creazione di repository in CloudFormation A differenza della creazione di repository dalla console o dalla riga di comando, è possibile utilizzare CloudFormation per creare repository e inviare automaticamente il codice nel repository appena creato da un file.zip specificato in un bucket Amazon S3. Per ulteriori informazioni, inclusi esempi di modelli JSON e YAML per i repository, consulta. [AWS::CodeCommit::Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html)

Quando crei un CodeCommit repository utilizzando CloudFormation, hai la possibilità di eseguire il commit del codice in quel repository come parte del processo di creazione, purché l'archivio sia inferiore a 20 MB, configurando le proprietà in [AWS:CodeCommit: :Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html) Code. Puoi specificare il bucket Amazon S3 in cui è archiviato il codice e, facoltativamente, utilizzare la [BranchName proprietà](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html) per specificare il nome del ramo predefinito che verrà creato nel commit iniziale di quel codice. Queste proprietà vengono utilizzate solo nella creazione iniziale del repository e vengono ignorate negli aggiornamenti dello stack. Non è possibile utilizzare queste proprietà per effettuare ulteriori commit su un repository o per modificare il nome del ramo predefinito dopo il commit iniziale.

**Nota**  
*Il 19 gennaio 2021, AWS ha cambiato il nome del ramo predefinito CodeCommit da *master a main*.* Questa modifica del nome influisce sul comportamento predefinito di CodeCommit quando si crea il commit iniziale per i repository utilizzando la CodeCommit console CodeCommit APIs, il AWS SDKs, e il AWS CLI. I repository creati con CloudFormation o AWS CDK con un commit iniziale di codice come parte della creazione si allineano a questa modifica a partire dal 4 marzo 2021. Questa modifica non influisce sugli archivi o sulle filiali esistenti. I clienti che utilizzano client Git locali per creare i propri commit iniziali hanno un nome di ramo predefinito che segue la configurazione di tali client Git. Per ulteriori informazioni, consulta [Lavorare con le filiali](https://docs.aws.amazon.com/codecommit/latest/userguide/branches.html), [Creare un commit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html) e [Modificare le impostazioni delle filiali](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-change-branch.html).

Puoi anche creare modelli per creare risorse correlate, come [regole di notifica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html) per gli archivi, [AWS CodeBuild creare progetti](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html), [AWS CodeDeploy applicazioni](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) e [AWS CodePipeline pipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html).

## Esempi di modello
<a name="cloudformation-codecommit-example"></a>

Gli esempi seguenti creano un CodeCommit repository denominato. {{MyDemoRepo}} Il repository appena creato è popolato con codice memorizzato in un bucket Amazon S3 {{MySourceCodeBucket}} denominato e inserito in un ramo {{development}} denominato, che è il ramo predefinito per il repository. 

**Nota**  
Il nome del bucket Amazon S3 che contiene il file ZIP con il contenuto che verrà salvato nel nuovo repository può essere specificato utilizzando un ARN o il nome del bucket nell'account Amazon Web Services. La chiave oggetto Amazon S3 è definita nella [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#BasicsKeys) Developer Guide.

 **JSON:**

```
{
    "MyRepo": {
        "Type": "AWS::CodeCommit::Repository",
        "Properties": {
            "RepositoryName": "{{MyDemoRepo}}",
            "RepositoryDescription": "{{This is a repository for my project with code from MySourceCodeBucket.}}",
            "Code": {
                "BranchName": "{{development}}",
                "S3": {
                    "Bucket": "{{MySourceCodeBucket}}",
                    "Key": "{{MyKey}}",
                    "ObjectVersion": "{{1}}"
                }
            }
        }
    }
}
```

**YAML:**

```
MyRepo:
  Type: AWS::CodeCommit::Repository
  Properties:
    RepositoryName: {{MyDemoRepo}}
    RepositoryDescription: {{This is a repository for my project with code from MySourceCodeBucket.}}
    Code:
      BranchName: {{development}}
      S3: 
        Bucket: {{MySourceCodeBucket}},
        Key: {{MyKey}},
        ObjectVersion: {{1}}
```

Per ulteriori esempi, consulta [AWS::CodeCommit::Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html).

## CloudFormation, CodeCommit, e AWS Cloud Development Kit (AWS CDK)
<a name="cloudformation-codecommit-cdk"></a>

Repository creati utilizzando la CloudFormation funzionalità AWS CDK use durante la loro creazione. Capire come CloudFormation i modelli interagiscono con CodeCommit le risorse può aiutarti a creare e gestire il AWS CDK codice. Per ulteriori informazioni su AWS CDK, consulta la [Guida per gli AWS Cloud Development Kit (AWS CDK) sviluppatori](https://docs.aws.amazon.com/cdk/latest/guide/home.html) e l'[AWS CDK API Reference.](https://docs.aws.amazon.com//cdk/api/v2/docs/aws-cdk-lib.aws_codecommit-readme.html)

Il seguente esempio di AWS CDK Typescript crea un CodeCommit repository denominato. {{MyDemoRepo}} Il repository appena creato è popolato con codice memorizzato in un bucket Amazon S3 {{MySourceCodeBucket}} denominato e inserito in un ramo {{development}} denominato, che è il ramo predefinito per il repository. 

```
import * as cdk from '@aws-cdk/core';
import codecommit = require('@aws-cdk/aws-codecommit');
export class CdkCodecommitStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);
    // The code creates a CodeCommit repository with a default branch name development
      new codecommit.CfnRepository(this, 'MyRepoResource', {
            repositoryName: "MyDemoRepo",
            code: {
              "branchName": "development",
              "s3": {
                "bucket": "MySourceCodeBucket",
                "key": "MyKey"
              }
            },
        }
     );
  }
}
```

## Scopri di più su CloudFormation
<a name="learn-more-cloudformation"></a>

Per ulteriori informazioni CloudFormation, consulta le seguenti risorse:
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation Guida per l'utente](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [AWS CloudFormation Guida per l'utente dell'interfaccia a riga di comando](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)