10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AtraeAdvent Calendar 2019

Day 16

CodeDeployとGitHubの認証方法

Posted at

以下のようなエラーが出たが、言われていることは定番なのに、意外と解決まで時間かかったのでまとめておく。

出たエラー

Could not download bundle at 'https://api.github.com/repos/[company_name]/[private_repo]/tarball/[commit_id]' after 3 retries. Server returned codes: 404 'Not Found'; 404 'Not Found'; 404 'Not Found'; 404 'Not Found'.

こんな感じ。
CodeDeploy Agentの中や、CodeDeploy>デプロイ>[デプロイID]>イベントログの中から見える。

エラーの意味としては、GitHubのプライベートレポジトリを見る権限がなかったので、ソースコードを引っ張ってこれなかったということ。

やったこと

今回は退職者のGitHubアカウントにアクセストークンが紐付いていたことに気が付かず、そのアカウントをOganazationから外してしまったという初歩的な原因。なので、それを作り直してあげた。

手順

1. GitHubでキーの作り直し

会社の管理アカウントにログインします(もしくは、ログインできる人にこの手順1だけお願いします)。
キーを作るURL
https://github.com/settings/tokens

そうするとこんな画面が出るので、右上をクリック
スクリーンショット_2019-12-16_20_10_15.png

次にアクセスを許可する範囲を設定します。
とりあえず一番上のフルアクセスなら問題ないですが、ちゃんとしたい人は何を許可すべきかしっかり確認してください。
アクセスの範囲設定は、キーを作成後でも修正できますので、最初はフルアクセスで一旦許可して、最後に調整することをおすすめします。
スクリーンショット 2019-12-16 20.10.45.png

アクセス範囲が決まったら、「Generate token」という緑のボタンを押して、キーの作成が完了です。

2. CodeDeployに1で作ったキーを設定する

CodeDeployのアプリケーションの作成方法は公式が詳しく説明してくれているので、こちらを参考にしてください。
https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/deployment-steps-server.html

このGitHub連携のところが私は詰まりました。7番目の手順!!
https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/integrations-partners-github.html#github-behaviors

私がやったのは7-1。(どれやればいいんだ..って悩んだのは私だけでしょうかw)

GitHub アカウントに対する AWS CodeDeploy アプリケーションの接続を作成するには、ウェブブラウザの別のタブで GitHub からサインアウトします。[GitHub token name (GitHub トークン名)] に、この接続を識別する名前を入力し、[GitHub に接続] を選択します。アプリケーションの GitHub を操作することを CodeDeploy に許可するよう求めるメッセージがウェブページに表示されます。ステップ 10 に進みます。

この、 「ウェブブラウザの別のタブで GitHub からサインアウトします。」 というのがめちゃめちゃ重要です!!
ログアウトしていないと、自分のGtiHubアカウントに紐付いてしまうので、ログアウトしないといけないんですね。
よくわかってなくて、キー入れるところあった!って思ってホイホイやったら、自分に紐付いて二の舞になるところでしたw

じゃあログアウトしちゃって、どうレポジトリの内容持ってくるんだ?ってなるんですが、そこで1で作ったトークンの出番です!
1で作ったキーを入力してReturnすると、別ウィンドウでAWS CodeDeployの認証を求める画面が出てきます。
これを承認すると、1でキーを作ったアカウント(会社の管理アカウント)にログインしてなくてもCodeDeployを許可することになります。
(もう承認しちゃって画像なくてごめんなさい。。)

これで連携が完了したので、デプロイできるか試してみてください〜

この設定は1つのCodeDeployアプリケーションに対して1回だけで良かったはずです!
同じレポジトリの同じ権限設定のもので良ければ1つのキーを同じように使っちゃっても大丈夫だと思います。
違うレポジトリ内容の場合は違うキーにした方が安全かな〜って個人的には思っていますが、運用の兼ね合いだと思うので臨機応変に設定してみてください。

まとめ

ちょーカンタンにですが、CodeDeployのエラーはあまり記事がないので、書いてみました!とても少数派だと思いますが、誰かの役にたったらラッキーです :pray:
最近はAWS公式のドキュメントがどんどんアップデートされるので、諦めずに覗いてみるのがいい感じだなって思っています。

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?