📝

CloudFormation で S3 のソースコードをもとに CodeCommit リポジトリを作成してみた

に公開

Creating CodeCommit resources with AWS CloudFormation - AWS CodeCommit
上記ドキュメントのサンプルを試してみました。

01. ソースコードの準備

まずは適当な GitHub リポジトリから zip 形式でソースコードをダウンロードします。
今回は以下の自分のリポジトリからダウンロードしました。
nkm-m/Translate-App

ダウンロード後に zip ファイルを解凍し、ルートディレクトリを含まないように再度ファイル群を zip 化します。

02. S3 バケットにソースコードをアップロード

AWS::CodeCommit::Repository Code - AWS CloudFormation

Information about the Amazon S3 bucket that contains a ZIP file of code to be committed to the repository. Changes to this property are ignored after initial resource creation.

01 の zip ファイルを任意の S3 バケットにアップロードします。
上記ドキュメントの通り、Code プロパティでは zip ファイル形式を指定します。

03. CloudFormation スタック作成

冒頭のドキュメントを参考に以下のようなテンプレートを定義しました。

AWSTemplateFormatVersion: "2010-09-09"

Resources:
  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: my-bucket-name
          Key: sample.zip

S3 バケット名やキー名は各環境に合わせてください。

上記テンプレートを使用して CloudFormation スタックを作成します。

04. CodeCommit リポジトリを確認

スタックの作成完了後、CodeCommit リポジトリが作成され、ソースコードが保存されていることが確認できました。

なお、02 のドキュメントの通り、S3 バケットにアップロードしたソースコードが自動的に反映されるのはリポジトリ作成時のみです。
そのため、S3 バケットの zip ファイルを更新しても CodeCommit には反映されません。

CodeCommit のソースコードを変更したい場合には一般的な Git のフローで更新してください。

まとめ

今回は CloudFormation で S3 のソースコードをもとに CodeCommit リポジトリを作成してみました。
どなたかの参考になれば幸いです。

参考資料

Discussion