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