AWS CloudFormation: How to create a CodeCommit repository?

Post image

Hello guys! Today we will be learning how to create an AWS CodeCommit repository using the AWS CloudFormation service.

What is AWS CloudFormation Service?

To explain in short, AWS CloudFormation is a service provided AWS which helps AWS cloud users to create infrastructure/resources on AWS in a very efficient way.

The CloudFormation service comes under the category of Infrastructure as Code (IaC). By using this service, we can create all out AWS infrastructure just by using a single JSON/YAML file. And the best part is we can use this file whenever and wherever in an AWS account.

To know more on AWS CloudFormation, you can refer the blog which covers full background of AWS CloudFormation.

What is a CodeCommit repository?

AWS CodeCommit is a Git based storage service offered by AWS for all the developers who want to store their code on AWS.

This service is similar to the service provided by GitHub or GitLab.

Software Developers and Engineers can use this service if they want their code to integrate with other AWS components or services easily.

CloudFormation Template

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "Template for creating a codecommit repository",
  "Parameters": {
    "RepositoryName": {
      "Type": "String",
      "Description": "Enter codecommit repository name"
    },
    "S3BucketName": {
      "Type": "String",
      "Description": "Enter the S3 bucket name where all the code files are stored"
    },
    "S3KeyForZipFile": {
      "Type": "String",
      "Description": "Enter the S3 file key for code zip files"
    }
  },
  "Resources": {
    "CodeCommitRepo": {
      "Type": "AWS::CodeCommit::Repository",
      "Properties": {
        "RepositoryName": { "Ref": "RepositoryName" },
        "RepositoryDescription": { "Ref": "RepositoryName" },
        "Code": {
          "BranchName": "master",
          "S3": {
            "Bucket": { "Ref": "S3BucketName" },
            "Key": {
              "Ref": "S3KeyForZipFile"
            }
          }
        },
        "Tags": [
          {
            "Key": "Purpose",
            "Value": "Education"
          }
        ]
      }
    }
  }
}

Template Parameters Explanation

In the above template we have used 3 parameters.

  1. RepositoryName

    Here you need to specify what should be your repository name.

  2. S3BucketName

    This parameter asks what is the name of the S3 bucket were the code files have been stored.

  3. S3KeyForZipFile

    Here you need to specify the key path for the zip file.

Note: You need to first zip all your code files and then upload them in your S3 bucket. AWS CodeCommit service will automatically unzip files.

Template Input Example

Let’s assume I am using a S3 bucket named my-project-files. I have created a zip of my code files and uploaded in my S3 bucket. The name of the zip is code.zip.

Considering the above assumptions this will how my inputs will look like when I run the template.

AWS CloudFormation stack image
AWS CloudFormation Stack Screenshot

Conclusion

AWS CloudFormation provides a powerful way to automate the creation and management of AWS resources, including CodeCommit repositories.

By leveraging infrastructure as code (IaC), you can ensure consistent and efficient deployments. Understanding the basics of CloudFormation and CodeCommit is crucial, and with the provided JSON template and detailed explanations, you now have the tools to set up your own repositories seamlessly.

Embrace automation and take full advantage of AWS services to streamline your development and operations processes.

You May Also Like