

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de CodeCommit recursos con AWS CloudFormation
<a name="creating-resources-with-cloudformation"></a>

AWS CodeCommit está integrado con AWS CloudFormation un servicio que le ayuda a modelar y configurar sus AWS recursos para que pueda dedicar menos tiempo a crear y administrar sus recursos e infraestructura. Crea una plantilla que describe todos los AWS recursos que desea (como los repositorios) y CloudFormation aprovisiona y configura esos recursos por usted. 

Cuando la utilice CloudFormation, podrá reutilizar la plantilla para configurar los CodeCommit recursos de forma coherente y repetida. Describa sus recursos una vez y, a continuación, aprovisione los mismos recursos una y otra vez en varias Cuentas de AWS regiones. 

## CodeCommit y CloudFormation plantillas
<a name="working-with-templates"></a>

Para aprovisionar y configurar recursos CodeCommit y servicios relacionados, debe conocer [CloudFormation las plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html). Las plantillas son archivos de texto con formato JSON o YAML. Estas plantillas describen los recursos que desea aprovisionar en sus CloudFormation pilas. Si no estás familiarizado con JSON o YAML, puedes usar CloudFormation Designer para ayudarte a empezar con CloudFormation las plantillas. Para obtener más información, consulte [¿Qué es Designer de CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html) en la *Guía del usuario de AWS CloudFormation *.

CodeCommit admite la creación de repositorios en CloudFormation A diferencia de la creación de repositorios desde la consola o la línea de comandos, puede utilizarlos CloudFormation para crear repositorios y enviar automáticamente el código al repositorio recién creado desde un archivo.zip especificado en un bucket de Amazon S3. Para obtener más información, incluidos ejemplos de plantillas JSON y YAML para repositorios, consulte. [AWS::CodeCommit::Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html)

Al crear un CodeCommit repositorio mediante CloudFormation, tiene la opción de enviar código a ese repositorio como parte del proceso de creación, siempre que el archivo ocupe menos de 20 MB, configurando las propiedades en [AWS:CodeCommit: Repository Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html). Puede especificar el bucket de Amazon S3 en el que se almacena el código y, si lo desea, utilizar la [BranchName propiedad](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html) para especificar el nombre de la rama predeterminada que se creará en la confirmación inicial de ese código. Estas propiedades solo se utilizan en la creación inicial del repositorio y se ignoran en las actualizaciones de la pila. No puede usar estas propiedades para realizar confirmaciones adicionales en un repositorio ni para cambiar el nombre de la ramificación predeterminada después de realizar la confirmación inicial.

**nota**  
El 19 de enero de 2021, AWS cambié el nombre de la rama predeterminada CodeCommit de *master* a *main*. Este cambio de nombre afecta al comportamiento predeterminado CodeCommit al crear la confirmación inicial para los repositorios mediante la CodeCommit consola, el CodeCommit APIs AWS SDKs, el y el AWS CLI. Los repositorios creados con CloudFormation o AWS CDK con una confirmación inicial de código como parte de la creación se adaptarán a este cambio a partir del 4 de marzo de 2021. Este cambio no afecta a los repositorios o ramificaciones existentes. Los clientes que utilizan clientes Git locales para crear sus confirmaciones iniciales tienen un nombre de ramificación predeterminado que sigue la configuración de esos clientes de Git. Para obtener más información, consulte [Cómo trabajar con ramificaciones](https://docs.aws.amazon.com/codecommit/latest/userguide/branches.html), [Crear una confirmación](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html) y [Cambiar la configuración de una ramificación](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-change-branch.html).

También puede crear plantillas que creen recursos relacionados, como [reglas de notificación](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html) para repositorios, [proyectos de compilación de AWS CodeBuild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html), [aplicaciones de AWS CodeDeploy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) y [canalizaciones de AWS CodePipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html).

## Ejemplos de plantillas
<a name="cloudformation-codecommit-example"></a>

En los siguientes ejemplos se crea un CodeCommit repositorio denominado{{MyDemoRepo}}. El repositorio recién creado se rellena con el código almacenado en un bucket de Amazon S3 denominado {{MySourceCodeBucket}} y colocado en una rama denominada{{development}}, que es la rama predeterminada del repositorio. 

**nota**  
El nombre del bucket de Amazon S3 que contiene el archivo ZIP con el contenido que se confirmará en el nuevo repositorio se puede especificar usando un ARN o el nombre del bucket en la cuenta de Amazon Web Services. Se trata de una clave de objeto de Amazon S3, tal y como se define en la [Guía del desarrollador de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#BasicsKeys).

 **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}}
```

Para obtener más ejemplos, consulte [AWS::CodeCommit::Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html).

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

Los repositorios creados utilizando la CloudFormation funcionalidad de AWS CDK uso en su creación. Entender cómo funcionan CloudFormation las plantillas con CodeCommit los recursos puede ayudarte a crear y administrar tu AWS CDK código. Para obtener más información al respecto AWS CDK, consulta la [Guía para AWS Cloud Development Kit (AWS CDK) desarrolladores](https://docs.aws.amazon.com/cdk/latest/guide/home.html) y la [Referencia de la AWS CDK API.](https://docs.aws.amazon.com//cdk/api/v2/docs/aws-cdk-lib.aws_codecommit-readme.html)

En el siguiente ejemplo AWS CDK de TypeScript se crea un CodeCommit repositorio denominado. {{MyDemoRepo}} El repositorio recién creado se rellena con el código almacenado en un bucket de Amazon S3 denominado {{MySourceCodeBucket}} y colocado en una rama denominada{{development}}, que es la rama predeterminada del repositorio. 

```
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"
              }
            },
        }
     );
  }
}
```

## Obtenga más información sobre CloudFormation
<a name="learn-more-cloudformation"></a>

Para obtener más información CloudFormation, consulte los siguientes recursos:
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation Guía del usuario](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [AWS CloudFormation Guía del usuario de la interfaz de línea de comandos](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)