タスク 5 - Azure 接続処理を追加
GitHub アクションより Azure リソースをデプロイするため、Azure 側と GitHub 側の認証関連の設定を行います。そして、 GitHub アクションに Azure への Login 処理を追加します。
本タスクは、演習 1 で作成された API アプリとUI アプリ 両方の GitHub リポジトリに対して作業を行いします。
演習作業簡略化のため、ファイルの作成と編集は main ブランチに対して直接行います。
作業
- Azure AD アプリの作成、 IAM 設定、Secrets の設定を行います。
- Azure AD アプリを作成します。
アプリの名前は、演習 2 の準備作業で作成されていた Azure リソースグループ名を設定してください。操作画面イメージ
-
Azure AD アプリに GitHub 資格情報を設定します。各項目は以下のように設定して、 [追加] ボタンをクリックします。
項目 値 フェデレーション資格情報のシナリオ* Azure リソースをデプロイする GitHub Actions 組織* (GitHub 組織名) リポジトリ* (GitHub リポジトリ名)
- API アプリの場合は、containerapps-albumapi-javascript
- UI アプリの場合は、containerapps-albumエンティティ型* ブランチ GitHub ブランチ名* main 名前* (資格情報の名前)
- API アプリの場合は、api-repo
- UI アプリの場合は、ui-repo操作画面イメージ
- 演習 2 の準備作業で作成されていた Azure リソースグループに対して Azure AD アプリの IAM を以下の手順で
共同作成者権限を付与します。- まず
アクセス制御 (IAM)ブレードよりロールの割り当ての追加を行います。 特権管理者ロールから共同作成者を選択して、次へ進めます。- 上記 1-1. ステップで作成した Azure AD アプリケーションをロール割り当ての対象として選択します。
- ロールの割り当てを確定します。
- ロールの割り当て結果は
ロールの割り当てタブにて確認できます。操作画面イメージ
- まず
-
上記 1-1. ステップで作成した Azure AD アプリケーション情報を元に GitHub に次の Secrets を設定します。
項目 値 AZURE_CLIENT_ID (アプリケーション (クライアント) ID) AZURE_TENANT_ID (ディレクトリ (テナント) ID) AZURE_SUBSCRIPTION_ID (サブスクリプション ID) 操作画面イメージ
- Azure AD アプリを作成します。
- タスク 2 の 1. と同様の手順で、
.github/workflows/build-deploy.ymlファイルを編集モードで開きます。操作画面イメージ

-
ジョブの実行パーミションを設定します。
下記permissionsを.github/workflows/build-deploy.ymlファイルのdeployジョブに追加します。# Add a id-token permission permissions: id-token: write -
下記
stepを.github/workflows/build-deploy.ymlファイルの末尾に追加します。# Add a step - name: Azure Login using OIDC uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}注意 各行のインデントを間違いと構文エラーになりますので、ご注意してください。
操作画面イメージ

確認
- 以下赤枠でマークされている修正内が
.github/workflows/build-deploy.ymlファイルに反映されていることを確認します。操作画面イメージ

- タスク 1 の 4. と同様に、手動実行でワークフローを起動します。
- ワークフロー処理はエラーなく終了し、deploy ジョブのログに
Login successful.のメッセージがが出力されていることを確認します。操作画面イメージ