p広聴AI2025-03-13~
o1 Pro.icon
以下の内容が再利用しやすい知識としてまとめられます:
1. Azure OpenAI Serviceのモデルデプロイ
--model-version に具体的なバージョン番号(例: 2024-11-20)を指定する必要がある。
--sku に Standard や GlobalStandard を指定し、合わせて --capacity などでスループットを管理する。
Embeddingモデルも同様に、latest は使えず、正しいバージョン番号(例: 1)を指定する。
2. Dockerのアーキテクチャ問題
Apple Silicon(M1/M2)などでビルドする際は、Azure上で動くx86_64用に docker buildx build --platform linux/amd64 ... のようにプラットフォーム指定が必要。
3. Key Vaultとアプリの権限設定
Web AppでKey Vaultのシークレットを参照する場合、Web Appに「マネージドID」を付与し、そのIDにKey VaultのKey Vault Secrets UserやKey Vault Secrets Officerロールを割り当てる必要がある。
az webapp identity assign でマネージドIDを有効化→ az role assignment create で当該IDにロール付与→ Web AppのApp Settingsに @Microsoft.KeyVault(SecretUri=...) を設定すると、シークレットが展開される(ただし、権限不足やロール割り当ての待ち時間などで即時に反映されないケースがある)。
4. Azure CLI実行時の注意点
CLIのデフォルトアプリ(Caller appid)がKey Vault操作の権限を持っていないときは、追加でロール割り当てが必要。
リソース作成やKey Vault設定の際にJSON出力をファイルに保存し、後から参照すると管理しやすい。
5. App Service PlanやSKUの選択
開発・テスト用途であればB1などのBasicプランが手軽。
負荷を考慮して適切に選ぶ必要がある(標準や上位プランも選択肢)。
6. 複数Web Appのデプロイ手順
サーバ用、クライアント用、管理用など用途別にWeb Appを作成してコンテナをデプロイ。
認証情報(例: BASIC認証)はKey Vaultに格納し、環境変数として参照すると管理が楽。
以上がAzure上でAIサービスやWebアプリをデプロイ・運用する際に汎用的に使えるポイントです。
nishio.icon
いやー、Key Vault関連でトラブりまくってうまくいかないので、一旦Key Vaultなしでやることに方針転換しようと思う
ビルド時に server:latest で作成しているのに、プッシュ時に client-admin:latest と別のタグを使用しているようです。Webアプリが参照しているイメージタグと一致しているか確認してください。
素人なのでこういうミスをしたりする
サーバサイドでconsole.logした時にログにでない問題
そもそもconsole.logを追加したものがデプロイできていないケースだった
別の話
Azureポータルで「診断ログ」や「アプリケーション ログ(ファイルシステム)」が有効になっているか、ログレベルが十分か確認してください。
2025-03-17
いったん全部消してやり直してみる
$ az login
テナントの中のサブスクリプション一覧がでる
デフォルトのままでいいのでこのまま進める
リソースグループの作成
Azure OpenAI Serviceリソースの作成
An existing resource with ID '...kouchou-ai-openai' has been soft-deleted. To restore the resource, you must specify 'restore' to be 'true' in the property. If you don't want to restore existing resource, please purge it first.
親切すぎるw
$ az cognitiveservices account purge --location japaneast --name kouchou-ai-openai --resource-group kouchou-ai-rg --subscription ...
モデルのデプロイ
これはCLIでできないのか
作成したAzure OpenAI Serviceリソースに移動します。
https://gyazo.com/bf7dd6b33c799a499866c69c0e790cd5
Azure OpenAI Studioを開けと言ってるけどAzure AI Foundryでいいのかな?
o3.icon
Azure OpenAI Studioは、以前は独立したポータルでしたが、現在はAzure AI Foundryポータルに統合されています。
そのため、「Azure OpenAI Studioを開け」と指示されても、Azure AI Foundryポータルで同じ機能が利用できるので、基本的にはAzure AI Foundryで問題ありません。
https://gyazo.com/49d83f8de9c17d6c126647a035da970d
https://gyazo.com/5d6ba13f6ded5415337f3c5346f7f410
https://gyazo.com/bb80ede6aa81bc37f1edbea239f0f0d9
前回これはCLIでやった気がするな
パラメータが色々でトラブってたからWeb経由をお薦めされたのかな
前回作業した時、エンドポイントはhttps://kouchou-ai-openai.openai.azure.comだったのに
上記のコマンドで得たエンドポイントはhttps://japaneast.api.cognitive.microsoft.com/で、なんかおかしいね
前者の方が正しいよな
.envに同じエンドポイントを書くことに関して
nishio.iconembeddingとgpt4oに同じエンドポイントを指定していいの?どうやってリクエストを区別するんですか?
o3.icon同じエンドポイントを使っても問題ありません。
Azure OpenAI Serviceでは、1つのエンドポイントで複数のデプロイを管理しており、リクエスト時に「デプロイ名」を指定することで、どのモデル(gpt4oやembedding)を呼び出すかを区別します。 App Service Planの作成
nishio.iconApp Serviceを3つ立ち上げるけど、費用はどうなります?3倍?
o3.iconApp Serviceの料金は、個々のアプリの料金ではなく、App Service Plan単位で発生します。
つまり、同じプラン内に3つのアプリを配置すれば、必ずしも費用が3倍になるわけではありません。ただし、各アプリを別々のプランで立ち上げると、その分料金がかさむ可能性があります。
nishio.iconAWSでいうと一つのEC2の中で3つのコンテナが動いてる感じですか?
o3.iconはい、その通りです。
同じApp Service Plan内に配置すると、1台のEC2上で複数のコンテナを動かすようなイメージで、リソースを共有するため、別々のプランを使わなければ費用は増えません。
サーバーコンポーネントのデプロイ
ここからビルド待ちがあるので3つ並列でやろうと思う
リポジトリのクローン
ここ古い名前なので直す必要がある
$ docker buildx build --platform linux/amd64 -t kouchou-ai-server:latest ./server
ビルドしたDockerイメージをローカルで実行してテストします
前回のマニュアルにはこれはなかったね、親切になった
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
そりゃそうだ
pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings
ADMIN_API_KEY
PUBLIC_API_KEY
そりゃそうだ
このテストは逆効果だw
Dockerイメージの保存とアップロード
code::
# Dockerイメージをtarファイルに保存
docker save kouchou-ai-server:latest -o kouchou-ai-server.tar
# tarファイルをgzipで圧縮
gzip kouchou-ai-server.tar
Azure Container Registryがないとdocker pushができないのか...
Azure App Serviceへのデプロイ
code::
# Dockerイメージをデプロイ
az webapp config container set \
--resource-group kouchou-ai-rg \
--name kouchou-ai-server \
--multicontainer-config-type compose \
--multicontainer-config-file docker-compose.yml
docker-compose.ymlを新しく作るみたいなことを言ってるけど違うよね
前回なんて言ってた?
code::
# サーバー用Web Appの作成
az webapp create \
--resource-group kouchou-ai-rg \
--plan kouchou-ai-plan \
--name kouchou-ai-server \
--deployment-container-image-name kouchouaiacr.azurecr.io/server:latest
そもそも前回はAzure Container Registryを作ってたのか
nishio.iconすでにローカルで立ち上げる時ようにcompose.yamlがあるけどそれでいいのかな?
o3.icon基本的にはローカル用のcompose.yamlを利用しても問題ありません。ただし、Azure App Serviceで運用する際は以下の点を確認してください:
ファイル名:Azureでは通常「docker-compose.yml」として認識されるため、必要ならリネームしてください。
環境変数・ポート設定:本番環境用に適切な設定が反映されているか確認する必要があります。
適宜調整すれば、そのまま使うことも可能です。
nishio.icon前回のマニュアルではそういうことはしていないのだけどシンプルにするためにこうなったのかな?
o3.iconそうです。前回は個々の設定を別々に行っていたかもしれませんが、今回はdocker-composeを使うことで設定を一元管理し、シンプルに運用できるように工夫されています。
ホントかなぁ、まあいいけど
renameの必要性についてセカンドオピニオン
o3.iconデフォルトでは「docker-compose.yml」というファイル名で認識されるため、ローカルで「compose.yaml」としている場合はリネームするのが無難です。
どうしても「compose.yaml」を使いたい場合は、Azure CLI のオプション(例:--multicontainer-config-file)で明示的にファイル名を指定する必要があります。
そういう感じなら、明示的に指定するからrenameしなくていいか
code::
# Dockerイメージをデプロイ
az webapp config container set \
--resource-group kouchou-ai-rg \
--name kouchou-ai-server \
--multicontainer-config-type compose \
--multicontainer-config-file compose.yaml
nishio.iconこのCLI側の手順ではimageをアップロードするタイミングがないような気がする
o3.iconCLIの手順では、Dockerイメージ自体のアップロード(push)は行っていません。
通常は、Docker HubやAzure Container Registryなどの外部レジストリに事前にイメージをプッシュし、CLIはそのレジストリ上のイメージを参照してApp Serviceを設定するためのものです。
nishio.icon今回Azure Container Registryのインスタンス?を作っていない
o3.iconそうです。今回のガイドはシンプルな構成を重視しており、ACRを利用せずにローカルでビルド・保存したDockerイメージを直接アップロードする方法を採用しています。
nishio.iconCLIでアップロードできる?ブラウザからしかできない?
o3.icon
CLIでは、ローカルのDockerイメージファイルを直接アップロードする機能は基本的に提供されていません。
通常は、コンテナレジストリ(ACRやDocker Hubなど)にイメージをプッシュし、そのイメージをApp Serviceから参照するか、もしくはブラウザのDeployment Centerを使ってローカルイメージをアップロードする形になります。
うえー、めんどくさ。ACR作成はそんなにつまづいてないから入れてもいいかもな
https://gyazo.com/96583ca24af835e4d49b4051b38ab334
GitHub Actionsで差し込むことがお薦めされてる
じゃああれか、今手元でdocker buildxしてるけど、将来的にはGitHub Actionsでやるのがいいのか?
https://gyazo.com/39ab4e6e9c2904e67be0dccd2a5e486f
いやGitHub Actionsでビルドしても、それは結局ACRかDocker Hubかにpushして、そのトリガーでpullするってだけか。じゃあACRをセットアップする方がいいな。
o3.icon
Azure App Serviceへは直接ローカルファイルをアップロードできないため、一般的にはACR(Azure Container Registry)にDockerイメージをプッシュして利用します。
以下が簡単な手順です:
1. ACRの作成
$ az acr create --resource-group kouchou-ai-rg --name aikouchouacr --sku Basic
2. ACRにログイン
$ az acr login --name aikouchouacr
3. Dockerイメージのビルドとタグ付け
$ docker buildx build --platform linux/amd64 -t kouchou-ai-server:latest ./server
$ docker tag kouchou-ai-server:latest aikouchouacr.azurecr.io/kouchou-ai-server:latest
4. ACRへプッシュ
$ docker push aikouchouacr.azurecr.io/kouchou-ai-server:latest
5. App Serviceの設定
Azure Portalの「コンテナ設定」で、ソースとしてACRを選び、リポジトリ名とタグを指定します。
これにより、ACRからイメージを取得してApp Serviceでコンテナを実行できるようになります。
$ az acr update -n aikouchouacr --admin-enabled true
$ az acr credential show --name aikouchouacr --resource-group kouchou-ai-rg
code::
az webapp config container set \
--resource-group kouchou-ai-rg \
--name kouchou-ai-server \
--docker-custom-image-name aikouchouacr.azurecr.io/kouchou-ai-server:latest \
--docker-registry-server-user <ACRユーザー名> \
--docker-registry-server-password <ACRパスワード>
再起動する
$ az webapp restart --resource-group kouchou-ai-rg --name kouchou-ai-server
サーバが起動したかどうかはログをみよう
code::
# App Serviceのログを確認
az webapp log tail \
--resource-group kouchou-ai-rg \
--name kouchou-ai-server
ログが表示されないな。
-----
% # ACRへのログイン
az acr login --name kouchouaiacr
zsh: command not found: #
Could not connect to the registry login server 'kouchouaiacr.azurecr.io'. Please verify that the registry exists and the URL 'https://kouchouaiacr.azurecr.io/v2/' is reachable from your environment. Try running 'az acr check-health -n kouchouaiacr --yes' to diagnose this issue.
% az acr check-health -n kouchouaiacr --yes
Docker daemon status: available
Docker version: 'Docker version 20.10.22, build 42c8b31, platform linux/arm64'
Docker pull of 'mcr.microsoft.com/mcr/hello-world:latest' : OK
Azure CLI version: 2.70.0
2025-03-17 08:23:50.591717 An error occurred: CONNECTIVITY_DNS_ERROR
Failed to reach DNS for registry 'kouchouaiacr.azurecr.io'. Please check if the spelling is correct, if the CLI environment is on correct cloud and your network connectivity.
ACRが二つあるとログインに失敗する?不可解
---
o3.icon
Azure CLI では
--docker-custom-image-name → --container-image-name
--docker-registry-server-url → --container-registry-url
--docker-registry-server-user → --container-registry-user
--docker-registry-server-password → --container-registry-password
が推奨されています。今後は新しいオプションを使用してください。
---
ログが出ない問題、むしろAzure Portalのログストリームならつながることもある
つながらないこともある
code:admin
2025-03-17T08:52:06 Welcome, you are now connected to log-streaming service.Starting Log Tail -n 10 of existing logs ----/appsvctmp/volatile/logs/runtime/container.log
2025-03-17T08:51:15.3231533Z Configure Services : 08.51.15.322864
2025-03-17T08:51:16.7442581Z Configure : 08.51.16.743970
2025-03-17T08:51:17.6208151Z Setting Up Routes : 08.51.17.620555
2025-03-17T08:51:18.2362864Z Exiting Configure : 08.51.18.236021
2025-03-17T08:51:18.6132403Z [40m[1m[33mwarn[39m[22m[49m: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager35 2025-03-17T08:51:18.6133451Z No XML encryptor configured. Key {fdf3c2ce-05ea-4c38-a6ba-9cffe3df9d1b} may be persisted to storage in unencrypted form.
2025-03-17T08:51:18.8348701Z Hosting environment: Production
2025-03-17T08:51:18.8359212Z Content root path: /opt/Kudu
2025-03-17T08:51:18.8534039Z Application started. Press Ctrl+C to shut down.Ending Log Tail of existing logs ---Starting Live Log Stream ---
2025-03-17T08:53:06 No new trace in the past 1 min(s).
2025-03-17T08:53:50.5848228Z
2025-03-17T08:53:50.7628783Z > kouchou-ai-client-admin@0.1.0 start
2025-03-17T08:53:50.7629743Z > next start -p 4000
2025-03-17T08:53:50.7629784Z
2025-03-17T08:53:54.5458289Z ▲ Next.js 15.1.6
2025-03-17T08:53:54.5460215Z
2025-03-17T08:53:54.5460243Z ✓ Starting...
2025-03-17T08:53:56.3796807Z ✓ Ready in 3.9s
2025-03-17T08:55:06 No new trace in the past 1 min(s).
code:client
2025-03-17T08:44:56.888979144Z
2025-03-17T08:44:56.889594374Z > kouchou-ai-client@0.1.0 build
2025-03-17T08:44:56.889598946Z > next build
2025-03-17T08:44:56.889601478Z
2025-03-17T08:45:09.723432943Z ??? Next.js 15.1.6
2025-03-17T08:45:09.743210166Z
2025-03-17T08:46:31.303Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 100.3545987 sec
2025-03-17T08:46:48.895Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 117.9464186 sec
2025-03-17T08:47:05.550Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 134.6007097 sec
2025-03-17T08:47:27.022Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 156.0733663 sec
2025-03-17T08:47:49.023Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 178.0737392 sec
2025-03-17T08:48:14.332Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 203.3826478 sec
2025-03-17T08:48:31.846Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 220.8968595 sec
2025-03-17T08:48:42.925Z ERROR - Container kouchou-ai-client_0_4abf5642 for site kouchou-ai-client did not start within expected time limit. Elapsed time = 231.948246 sec
2025-03-17T08:48:43.097Z ERROR - Container kouchou-ai-client_0_4abf5642 didn't respond to HTTP pings on port: 3000, failing site start. See container logs for debugging.
2025-03-17T08:48:43.347Z INFO - Stopping site kouchou-ai-client because it failed during startup.Ending Log Tail of existing logs ---Starting Live Log Stream ---
2025-03-17T08:49:54 No new trace in the past 1 min(s).
serverがエラー
https://gyazo.com/1e278d66dc93bac3ceb5864aac73fa8b
o3.icon
ログから見ると、コンテナが起動時に必要な設定情報(特に、ADMIN_API_KEY、PUBLIC_API_KEY、OPENAI_API_KEY など)が不足しているため、アプリケーション側で Pydantic によるバリデーションエラーが発生しています。その結果、アプリケーションが正しく起動できず、HTTP の ping にも応答できず、最終的に起動タイムアウトとなっています。
【対策】
必須環境変数の設定
アプリケーションが起動時に必要とする環境変数(ADMIN_API_KEY、PUBLIC_API_KEY、OPENAI_API_KEY など)を、Azure App Service の「構成」→「アプリ設定」から設定してください。
code::
az webapp config appsettings set \
--resource-group kouchou-ai-rg \
--name kouchou-ai-server \
--settings ADMIN_API_KEY="admin" PUBLIC_API_KEY="public" OPENAI_API_KEY="..."
多分これバリデーションでUSE_AZUREのときにはなくてもOKにするとかした方がいいのかも
なんか色々エラーのようなものが出たりしてたけど他の作業をしているうちに気がついたら完了していた
https://gyazo.com/9ce8d8e5e3545db739919950fde501ef
おっ、処理が始まったっぽいぞ
問題はレポート作成がちゃんと進んでいるのか、裏でエラーで落ちてるのか、というところだな
あとclientはまだ表示されない
今日の進捗
一旦リソースグループを消してやり直し
Key Vaultを使わない路線のシンプルなドキュメント(ver.3)を生成してそれに従う
Azure Container Registryも使わないドキュメントだったが、それはブラウザ操作が必須になって手間なのでACRは使うことにしてドキュメント再生成した
管理画面からCSVをアップロードして処理開始することはできた。ただし十分な時間が経っても完了しないのでサーバサイドでエラーで死んでるのだと思う。アプリケーションの出すエラーログがデフォルトではログストリームに流れないようなので原因は不明。
clientはまだ起動しない。多分serverに接続するのにAzure App Serviceの中ではlocalhostを通した通信ができないのだと思う
2025-03-18
Azure環境にデプロイするのとAzure OpenAI Serviceを使うのは独立の話だよねという話
確かにそれはそう
ちょうどリポジトリも色々変わったことだしリポジトリごとゼロからやってみるか
fork
cloneして.envにOpenAIのAPIキーをいれてdocker-compose up
Attaching to kouchou-ai-api-1, kouchou-ai-client-1, kouchou-ai-client-admin-1
Error response from daemon: driver failed programming external connectivity on endpoint kouchou-ai-api-1 (0ad5b0eeabca84ef698349ed3093339034298f7711c03d847781b61a2b7a55d4): Bind for 0.0.0.0:8000 failed: port is already allocated
おっとどこかで8000番が使われている
$ sudo lsof -i :8000
古いサーバが生きてたので殺してから再度docker up
localhost:4000で管理画面が出る
https://gyazo.com/fbd7a1107e02b39b6c836602b7d0fd51
localhost:8000でAPIのOKがでる
localhost:3000でクライアントが出ないが...
ビルドに時間がかかってただけみたい
code::
kouchou-ai-client-1 |
kouchou-ai-client-1 | > kouchou-ai-client@0.1.0 build
kouchou-ai-client-1 | > next build
kouchou-ai-client-1 |
kouchou-ai-client-1 | ▲ Next.js 15.1.6
kouchou-ai-client-1 |
kouchou-ai-client-1 | Creating an optimized production build ...
...
code::
kouchou-ai-client-1 | ✓ Compiled successfully
kouchou-ai-client-1 | Linting and checking validity of types ...
kouchou-ai-client-1 |
kouchou-ai-client-1 | ./components/report/ClientContainer.tsx
kouchou-ai-client-1 | 30:6 Warning: React Hook useEffect has a missing dependency: 'fetchReport'. Either include it or remove the dependency array. react-hooks/exhaustive-deps
kouchou-ai-client-1 |
kouchou-ai-client-1 | Collecting page data ...
kouchou-ai-client-1 | Generating static pages (0/4) ...
kouchou-ai-client-1 | Generating static pages (1/4)
kouchou-ai-client-1 | Generating static pages (2/4)
kouchou-ai-client-1 | Generating static pages (3/4)
kouchou-ai-client-1 | ✓ Generating static pages (4/4)
kouchou-ai-client-1 | Finalizing page optimization ...
kouchou-ai-client-1 | Collecting build traces ...
kouchou-ai-client-1 |
kouchou-ai-client-1 | Route (app) Size First Load JS
kouchou-ai-client-1 | ┌ ○ / 2.3 kB 152 kB
kouchou-ai-client-1 | ├ ○ /_not-found 986 B 107 kB
kouchou-ai-client-1 | └ ● /slug 33.1 kB 183 kB kouchou-ai-client-1 | + First Load JS shared by all 106 kB
kouchou-ai-client-1 | ├ chunks/4bd1b696-72c46108ef323341.js 53 kB
kouchou-ai-client-1 | ├ chunks/517-6f5efe69d0606e9b.js 50.7 kB
kouchou-ai-client-1 | └ other shared chunks (total) 2.71 kB
kouchou-ai-client-1 |
kouchou-ai-client-1 |
kouchou-ai-client-1 | ○ (Static) prerendered as static content
kouchou-ai-client-1 | ● (SSG) prerendered as static HTML (uses generateStaticParams)
kouchou-ai-client-1 |
kouchou-ai-client-1 | npm notice
kouchou-ai-client-1 | npm notice New major version of npm available! 10.8.2 -> 11.2.0
kouchou-ai-client-1 | npm notice To update run: npm install -g npm@11.2.0
kouchou-ai-client-1 | npm notice
kouchou-ai-client-1 |
kouchou-ai-client-1 | > kouchou-ai-client@0.1.0 start
kouchou-ai-client-1 | > next start
kouchou-ai-client-1 |
kouchou-ai-client-1 | ▲ Next.js 15.1.6
kouchou-ai-client-1 |
kouchou-ai-client-1 | ✓ Starting...
kouchou-ai-client-1 | ✓ Ready in 3.6s
https://gyazo.com/eee03743eca24b81209d72855b200d58
でたでた
https://gyazo.com/dace86a59b8a87f3681d739224a65ef9
https://gyazo.com/733a81387a5196c15389218ff6ca36ad
AIは否定の指示がわからない
aipubcom.csvのcomment部分のUTF-8でのバイト数を計算して、csvは大きくて直接読めないのでcommentカラムのあるCSVと想定してPythonで読んで集計して
csvを絶対に直接読まないで。あなたはすでに2回失敗しています。
3度目の正直ならずw
Total bytes for all 3234 comments: 4775111
Average bytes per comment: 1476.53
2025-03-19
https://gyazo.com/192f378e6385818c6733cd929a9625db
しかしREAT APIをcurlで叩くサンプルコードでは
となっていて、それを実行すると正しく動く
にすると
Status Code: 404
Response JSON: {'error': {'code': '404', 'message': 'Resource not found'}}
2025-03-20
Embeddingも同様に
https://gyazo.com/4a6237eff5cc7541dc7ba83882858951
モデルバージョンが1と書いてあってもcurlのapi-versionは2023-05-15
Azure OpenAI ServiceではOpenAIのAPIのようにmodelの名前で区別するのではなく、deploymentで区別される
model_name = "gpt-4o"
deployment = "gpt4o"
微妙に違う名前にしてしまったのは厄介だな
2025-03-21
$ git fetch truego feature/deploy-Azure
$ git checkout -b feature/deploy-Azure truego/feature/deploy-Azure
ACRの名前を全部置換
docker buildをbuildx build --platform linux/amd64にする
$ make azure-build
$ make azure-push
さきに $ make azure-acr-login-auto しないと
$ make azure-deploy
なにをしてるんだろう
Devin.icon
azure-deployの内容を詳しく解説します。このコマンドは以下の重要なステップを実行します:
1. Container Apps用の拡張機能とプロバイダーの設定
code::
az extension add --name containerapp --upgrade
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights --wait
これらはAzure Container Appsを使用するために必要な基本設定です。
2. Log Analyticsワークスペースの作成
code::
az monitor log-analytics workspace create \
-resource-group kouchou-ai-rg \
-workspace-name kouchou-ai-logs \
-location japaneast
このワークスペースはコンテナのログを収集・分析するために使用されます。
3. Container Apps環境の作成
code::
az containerapp env create \
-name kouchou-ai-env \
-resource-group kouchou-ai-rg \
-location japaneast \
-logs-workspace-id $WORKSPACE_ID
これは3つのコンテナアプリを実行するための共有環境を設定します。
4. ACRの管理者アクセス権の有効化
code::
az acr update \
-name kouchouairegistry \
-resource-group kouchou-ai-rg \
-admin-enabled true
これによりContainer AppsがACRからイメージをプルできるようになります。
5. 各コンテナアプリのデプロイ
APIコンテナ(ポート8000)
クライアントコンテナ(ポート3000)
管理者クライアントコンテナ(ポート4000)
各コンテナは以下の設定で作成されます:
外部アクセス可能(ingress external)
最小レプリカ数1
ACRの認証情報を使用
適切なポート設定
このコマンドにより、広聴AIの3つのコンポーネントが完全に構成されたAzure環境にデプロイされます。
2025-03-25
az containerapp exec \
--name <コンテナアプリ名> \
--resource-group <リソースグループ名> \
--container <コンテナ名> \
--command "/bin/bash"
2025-03-27
az containerapp exec --name api --resource-group nishio-kouchou-ai-rg --container api --command "/bin/bash"