タスク 6 - Azure Container Apps にアプリをデプロイする処理を追加 - API アプリ
API アプリを Azure Container Apps にデプロイするための処理を GitHub アクションに追加します。
本タスクは、演習 1 で作成された API アプリ
のみの GitHub リポジトリに対して作業を行いします。
演習作業簡略化のため、ファイルの作成と編集は main ブランチに対して直接行います。
作業
- タスク 2 の 1. と同様の手順で、
.github/workflows/build-deploy.yml
ファイルを編集モードで開きます。操作画面イメージ
-
env
に下記環境変数を追加し、準備タスクにて作成した Azure のリソースに合わせて、以下を設定します。項目 値 リソース グループ名 (準備タスクで作成されたリソースグループ名) Azure Container Apps 名 - API アプリ ctapp-demo-api 操作画面イメージ
-
下記
step
コードを.github/workflows/build-deploy.yml
ファイルの末尾に追加します。# Add a step - name: Deploy to containerapp uses: azure/CLI@v1 with: inlineScript: | az extension add --upgrade --name containerapp az containerapp registry set \ --name ${{ env.CONTAINERAPP_NAME }} \ --resource-group ${{ env.RESOURCE_GROUP_NAME }} \ --server ${{ env.CONTAINER_REGISTRY }} \ --username ${{ secrets.CONTAINER_REGISTRY_USERNAME }} \ --password ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} az containerapp ingress enable \ --name ${{ env.CONTAINERAPP_NAME }} \ --resource-group ${{ env.RESOURCE_GROUP_NAME }} \ --target-port 3500 \ --type external container_name=$( \ az containerapp show \ --name ${{ env.CONTAINERAPP_NAME }} \ --resource-group ${{ env.RESOURCE_GROUP_NAME }} \ --query "properties.template.containers[0].name" \ --output tsv ) az containerapp update \ --name ${{ env.CONTAINERAPP_NAME }} \ --resource-group ${{ env.RESOURCE_GROUP_NAME }} \ --container-name $container_name \ --image ${{ env.CONTAINER_REGISTRY }}/${{ env.REPOSITORY_NAME }}:${{ github.sha }}
注意 各行のインデントを間違いと構文エラーになりますので、ご注意してください。
az containerapp ingress enable
の--target-port
オプションは API アプリの場合は3500
を指定。操作画面イメージ
確認
- 上記 2. および 3. の修正が下図赤枠のように
.github/workflows/build-deploy.yml
ファイルに反映されていることを確認します。操作画面イメージ
- タスク 1 の 4. と同様に、手動実行でワークフローを起動します。
操作画面イメージ
- ワークフロー処理はエラーなく終了し、deploy ジョブのログに
az script ran successfuly.
のメッセージがが出力されていることを確認します。操作画面イメージ
- API アプリの Azure Container Apps にリビジョンとしてデプロイされていることが確認できます。
操作画面イメージ
- API アプリの URL にアクセスして動作確認ができます。
操作画面イメージ
- API アプリの リポジトリの
routes/index.js
に記載されているメッセージが表示されていることが確認できます。操作画面イメージ
- API アプリの URL +
/albums
にアクセスし、JSON が表示されていることが確認できます。操作画面イメージ