📖

Visual Studio CodeでAWS CodeCommitを使う

2023/05/09に公開

はじめに

インフラアーキテクトのSanbongawaです。

AWSの経験が長くなってくるとそろそろコードを使いましょうと言われて、お悩みのインフラ屋さんは実は多いのではないでしょうか。

そんなインフラ屋の私がコードに挑戦した内容をご紹介するのが目的です。

今回はVisual Studio CodeでAWS CodeCommitを使うを記載します。
(AWS CodeCommitとの使い方)

記載内容

  • Visual Studio CodeでAWS CodeCommitを使う
    • AWS CordCommitの構築
    • VSCodeで接続する
    • VSCordからPushする

Visual Studio CodeでAWS CodeCommitを使う

今回はこのような動作ができるように構成します。

AWS CordCommitの構築

CodeCommitのサービス画面にてリポジトリを構築します。

必須内容としては、リポジトリ名のみです。
説明は、オプションのため任意ですが、何をする目的のリポジトリなのか?など記載することをお勧めます。

VSCodeで接続する

VSCodeでAWS CordCommitへの接続ですが、必要なステップが3つあります。
ステップ毎に確認していきます。
CodeCommit作成後にステップ内容が表示されます。

VSCodeで接続する(ステップ 1: 前提条件)

ステップ 1: 前提条件
AWS CodeCommit リポジトリに接続するには、Git クライアントが必要です。

VSCodeのソース管理にてリンクが表示されますので、こちらを利用いただくのが楽です。

Codeで外部のWebサイトを開きますか?が表示されますので、ご確認の上サイトからインストーラをダウンロードします。

https://git-scm.com/downloads

またAWS CodeCommit にアクセスするための IAM ユーザーを作成して必要な権限を設定する必要があります。
※既にユーザと十分な権限が付与されているのであればこの手順は不要です。

https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html?icmpid=docs_acc_console_connect_np

VSCodeで接続する(ステップ 2: 前提条件)

ステップ 2: Git 認証情報
IAM ユーザー用の Git 認証情報を作成します (作成済みでない場合)。

対象のIAMユーザのセキュリティ認証情報で「AWS CodeCommit の HTTPS Git 認証情報」にて認証情報を生成します。
自動作成なのでボタンをクリックするだけで作成できます。

認証情報をダウンロードし、安全な場所に保存します。

VSCodeで接続する(ステップ 3: 前提条件)

ステップ 3: リポジトリのクローンを作成する
ローカルコンピュータにリポジトリのクローンを作成し、コードでの作業を開始します。

VSCodeでは、GUIとCLIで実施する方法がありますが、Gitに慣れていないと訳が分からないコマンドが多いため、今回はCLIで必要なコマンドだけで実施します。

次のコマンドを実行します。

Console
cd <作業フォルダ>
git clone https://<repository>
//ローカルコンピュータにリポジトリのクローンを作成

AWS CordCommitからデータをダウンロードするため認証が求められます。
ポップアップで画面が出ますので、ダウンロードしたID/PASSを入力して認証をしてください。

次にgit initなどの利用するコマンドについて説明をしておきます。
まずポイントとしては今回はgit cloneを実施しているため、git init実施は不要です。
※git initはコマンドで実行したカレントフォルダでの初期化処理です。

Console
git init
//今いるカレントディレクトのgitの初期化コマンド

git clone すると動作としては、git pull&git initになります。
https://git-scm.com/docs/git-clone
なのでcloneを実施しているのであればgit init対応は不要というわけです。

また初回のレポジトリをCloneした場合にWarningが出ますが書いてある通り、中見ないよって話なので気にしなくて大丈夫です。
warning: You appear to have cloned an empty repository.

次に実際にどのような設定になっているのか?確認してみましょう。

AWS CordCommit上はなんのブランチ情報もありませんが、実際は以下の通りブランチはmasterになってます。

Console
git status
//gitの状態確認コマンド add/commitしてないファイルがあるなどがわかる
On branch master
No commits yet

更に詳細を掘っていきますとクローンされたフォルダに作られた
.gitにあるconfigファイルの内容が以下となっています。

remoteのレポジトリのところがoriginという名前
branchがmasterであるというのがわかるかと思います。

.git/config
[remote "origin"]
	url = https://<repository>
	fetch = +refs/heads/*:refs/remotes/origin/*
.git/config
[branch "master"]
	remote = origin
	merge = refs/heads/master

VSCordからPushする

実際にAWS CordCommitにファイル更新を反映させます。
何かしらのファイルを追加してからVSCordのターミナルでPushします。
ファイルの追加作業などはGUIで実施しても問題ありません。

Console
cd <repository>
//デフォルトではリポジトリの名前がフォルダの名前で追加
git add <newfiles>
//変更ファイルをpush対象として追加
git commit -m "First push"
//今回の変更に対してのコメントを追加
git push origin master
//CodeCommitにpushする

これでAWS CodeCommit上にファイルが保存されていれば完成です。

Gitをインフラ目線でまとめました

もう既にそんなの知っているという方はスルーしてください。

結論からGitは変更管理のシステムです。

ブランチの考え方などはGitの説明になるので今回は省きます。

インフラ屋が詰まるであろうポイントを整理しましたので、まずは大まかな概念でクリアしてもらいたいと思います。

以下が覚えてもらいたい概念です!

  • ファイルサーバの感覚で同じ状態をpushはできません
  • pullしても同じ状態なら特に何もおきません
  • 常に上書き保存で別のブランチへの上書きができます
  • ブランチはフォルダだと思えば気が楽

その他、チームとして使うならなどいろいろありますがソロで利用はこれくらいで十分です。

さいごに

今回はVisual Studio CodeでAWS CodeCommitを利用することに注目して記載しました。

ただ実際はVisual Studio CodeやAWS CodeCommitの知識ではなく、Gitの理解が必要でした。

今回のような周辺知識へフォーカスするのも大切であるというのが分かった良い例だったと思います。

クラウド利用でインフラ屋の作業対象範囲も広がってますので、そんな悩めるインフラ屋の一助になれば幸いです。

以上

Discussion