0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初心者がstreamlitを使って採点アプリを作ってみた#5

Posted at

目次

  1. はじめに
  2. Google CloudでWordloadIdentityを設定する
  3. 終わりに

はじめに

streamlitを使って、採点アプリを作ってみた記録の第5回目の投稿になります。
前回までの記事が気になった方は

第1回:https://qiita.com/0dn09g3y726519/items/d78397d3c174f4388687
第2回:https://qiita.com/0dn09g3y726519/items/e95bae2595b951ddbecc
第3回:https://qiita.com/0dn09g3y726519/items/6fc96e928c4c910d3ed9
第4回:https://qiita.com/0dn09g3y726519/items/a4230330eed6a7359c1d

こちらをご覧ください。
下図のような構成のアプリを作っています。

image.png

3回目までの記事で機能の紹介が終わりましたので、今回のアプリ制作活動の中で一番苦労したデプロイについてご紹介したいと思います。サーバーって何?ってレベルの初心者が、いろいろ調べながら頑張ってCI/CDができる環境を作って、アプリのデプロイまでたどり着きましたので、今後どなたかの参考になれば幸いです。
(初心者ゆえおそらく間違っているところも多々あると思いますので、間違いに気づかれた方はぜひコメントください。勉強させていただきたいと思います。)
前回はgithubactionsを利用して、googlecloudbuildを動かしてビルドを実行するところまで説明しました。
今回はgithubと連携をするために、google cloudのWorkloadIdentityの設定・ビルドファイルの作成について説明します。

Google CloudでWordloadIdentityを設定する

https://qiita.com/NagaokaKenichi/items/42ca288022e96cda065d
https://zenn.dev/cloud_ace/articles/7fe428ac4f25c8
↥これらの記事を参考にさせていただきました。
正直今回のデプロイで一番苦労したのが、この認証部分だったため、ここはいつも以上に丁寧に説明させていただきます。

google cloudコンソールに行きましょう。
image.png
ここで左上の三を押して、IAMと管理→Workload Identity連携を選択します。
image.png
ここの上のプールを作成をクリックして、プールを新規作成しましょう。
image.png
ここで名前、説明を入力して、続行を押しましょう。
名前:作成したいWorkLoad Identityプールの表示名ID
説明:このプールの用途などを説明する
image.png
次に、プロバイダの設定をします。ここではgithubと連携をする場合は、画像と同じように入力してください。発行元のURLもみなさん共通のものです。
設定をして続行を押しましょう。
image.png
画像に従って、属性のマッピングの欄を埋めましょう。ここに何を入れるのが適切なのかわからなかったので、とりあえず必要そうなものはすべて入れています。
最後に属性条件のところに、githubactionsを実行したいgithubユーザ名/githubリポジトリ名を入れて、ほぞんを押しましょう。これでworload Identityのプールを作成することができたはずです。
次に作成したプールに対してサービスアカウントの権限を許可しましょう。

左側のWorkIndentityの連携をクリックすると、作成したプールが表示されていると思います。
ここをクリックします。
image.png
すると画像のような画面になると思うので、ここでアクセスを許可を押します。
image.png
そうすると右側に、このような画面が出ます。
image.png
ここで、下の”サービスアカウントの権限借用を使用してアクセス権を付与する”を選びます。
次に、サービスアカウントをプルダウンから選び、下の”プリンシパルを選択する”のところでsubjectを選んで、右側のところに、githubユーザ名/リポジトリ名を入れて、保存を押します。
これでプールの権限に、入力したgithubへの権限を許可するようになっているはずです。
image.png

最後にサービスアカウントのプリンシパルにアクセス権を付与しないといけないので、そこを追加しましょう。

右のサービスアカウントというタブから、この画面に移動しましょう。
今アクセス権を付与したいサービスアカウントをここでクリックしてください。
スクリーンショット 2024-10-19 103628.png

ここで、上の権限というタブに行きましょう
スクリーンショット 2024-10-19 104118.png

次に、アクセス権を許可を押しましょう。
スクリーンショット 2024-10-19 104253.png

するとこのような画面になると思います。
ここで、新しいプリンシパル・ロールを入力しましょう。

新しいプリンシパル:

principalSet://iam.googleapis.com/projects/プロジェクト番号/locations/global/workloadIdentityPools/Workload Identityプール名/attribute.repository/githubユーザ名/githubリポジトリ名

ロール:

Workload Identity ユーザー

と設定をしたら、保存を押します。

スクリーンショット 2024-10-19 104545.png

これでようやくGitHubと認証周りの連携が完了しました!!
非常に長かったですね!
(ただたいていの場合、これで終わりではなく想定していないエラーがこの後出るので覚悟してください泣)

終わりに

今回はGitHubとGoogleCloudの認証周りの連携について説明しました。
次回は、google cloud runを使って、いよいよstreamlitで作成したアプリをデプロイしたいと思います。

最後までお読みいただき、ありがとうございます。
良ければ次回もお付き合いください!!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?