Upgrade to Pro — share decks privately, control downloads, hide ads and more …

初めてのAzure FunctionsをClaude Codeで作ってみた / My firs...

初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code

2025/06/22「JAZUG福岡」で発表したLT資料です

Avatar for Hideaki Aoyagi

Hideaki Aoyagi

June 22, 2025
Tweet

More Decks by Hideaki Aoyagi

Other Decks in Technology

Transcript

  1. 初めての Azure Functions を Claude Code で作ってみた 青柳 英明 2025/06/22

    JAZUG Fukuoka 第2回 〜 Azureの知識地図を語る!
  2. Azure OpenAI をご利用のお客様から、ご要望 「社内のエンドユーザー向けに、毎月の Azure OpenAI 利用料を周知したい」 「Azure ポタールの『コスト分析』ダッシュボードを共有しましょう」 「エンドユーザーには

    Azure ポータルのログイン権限を与えてない」 (※ Azure OpenAI は IAM 権限ではなく API キー経由で利用させている) 「(うーん・・・)」 「Excel で料金レポートをまとめてくれない?」 「(うーーん・・・・・)」
  3. 要件を整理してもらうと良いらしい (と聞いた) いきなり「コードを書いて」とお願いするのではなく、 やりたいことを伝えて、要件を整理してもらう > Azureの料金データをダウンロードしてレポートを作成するツールを作りたいです。 私にヒアリングして要件を整理してください。 •Azureの料金データをレポート作成するツールについて、要件を整理させていただきます。 以下の点について教えてください: 1.

    データソース - Azure Cost Management APIを使用しますか?それとも既存のCSVエクスポートを使用しますか? - 対象のAzureサブスクリプションは単一ですか、複数ですか? 2. レポート内容 - どのような期間のデータが必要ですか?(月次、週次、日次など) - 主に見たい項目は何ですか?(サービス別、リソースグループ別、タグ別など) - コスト予測やトレンド分析は必要ですか? 3. ・・・
  4. ヒアリングに答えていく と言っても正直よくわからんので、お勧めを聞いてみる ・・・ これらの情報を教えていただければ、具体的な実装方針を提案できます。 > 要件を順に伝えます。 データソース: - APIを使うか、CSVエクスポートを使うか、決めていません。お勧めを教えてください。 -

    対象のAzureサブスクリプションは単一です。 •データソースについてのお勧め: Azure Cost Management APIをお勧めします。理由は: メリット: - リアルタイムデータ取得 - 自動化しやすい(定期実行に最適) - 柔軟なフィルタリング・グループ化 - プログラムで完結 デメリット: ・・・
  5. ヒアリングに答えていく Claude Code お勧めのヤツにしておく 残りのヒアリングにも答えていく > レポート内容: - 期間は月次で、次の2パターンのレポートが欲しいです -

    月間トータル利用費を出力 (表形式) - 日毎の利用費の推移を出力 (グラフ形式) - 対象サービスはAzure OpenAI (Cognitive Serviceアカウント) で、分析軸はリソース別です - 日毎の利用費推移には、コスト予測も出力してください > 出力形式: Excelでお願いします > 実行環境: Pythonでお願いします > わかりました、Azure Cost Management APIを使用してください。
  6. 要件が整理された •要件整理完了! Azure料金レポートツール仕様: - データソース: Azure Cost Management API -

    認証: Azure CLI認証 - 対象: Azure OpenAI (Cognitive Service)、リソース別 - 言語: Python - 出力: Excel形式 - レポート内容: a. 月間トータル利用費(表形式) b. 日毎利用費推移+月末までの予測(グラフ形式) - 実行: 手動、指定月のレポート生成 実装を開始しますか? > 開始してください
  7. 実装開始 タスクを展開して、次々に作業を進めてくれる •Update Todos ⎿ ☒ Complete requirements gathering for

    Azure cost report tool ☐ Set up Python project structure and dependencies ☐ Research Azure Cost Management API endpoints and authentication ☐ Implement Azure OpenAI cost data retrieval by resource ☐ Create monthly total cost report (table format) ☐ Create daily cost trend analysis with prediction ☐ Implement Excel export functionality ☐ Create command line interface for month specification ・・・ Wrote 9 lines to requirements.txt ・・・ Wrote 241 lines to azure_cost_reporter.py ・・・
  8. 実装完了 実装が終わったら、テストもしてくれる •Azure Cost Reporterツールが完成しました! 作成したファイル 1. requirements.txt - 必要なPythonライブラリ

    2. azure_cost_reporter.py - メインツール 3. README.md - 使用方法とドキュメント 主な機能 ・・・ 使用手順 ・・・ ツールの使用準備が整いました。実際に実行してテストしますか? > はい、実行してください
  9. テスト 〜 エラーが出たら自動的に修正 テスト中にエラー発生 → エラー内容を踏まえて、コードや設定ファイルを修正してくれる •Bash(python azure_cost_reporter.py --subscription-id XXXXXXXX

    --year 2024 --month 12) ⎿ Error: (eval):1: command not found: python •Bash(python3 azure_cost_reporter.py --subscription-id XXXXXXXX --year 2024 --month 12) ⎿ Error: Traceback (most recent call last): File "/Users/hoge/test/claude-code-test/azure-cost-report-tool/ azure_cost_reporter.py", line 18, in <module> from sklearn.linear_model import LinearRegression ModuleNotFoundError: No module named 'sklearn'
  10. 実行成功 レポートファイルが生成された! (生成された Excel をお見せしたいですが・・・実データ入ってるのでゴメン) •ツールの実行が成功しました! Azure OpenAI の2024年12月のコストデータを取得 Excelレポート

    azure_openai_cost_report_2024_12.xlsx を生成 月間総コスト: $174,666.29 を表示 生成されたレポートの内容: 1. Monthly Summary シート - リソース別月間サマリー 2. Daily Trend シート - 日毎の推移データ(実績+予測) 3. Chart Data シート - グラフ作成用データ
  11. Azure Functions 化してみる > ツールをAzure上でスケジュール実行したいです。どのようにすればよいですか? •Azure上でスケジュール実行する方法を3つ提案します: 1. Azure Functions(推奨) -

    利点: サーバーレス、コスト効率、簡単な設定、タイマートリガー対応 - 適用: 月次実行に最適 2. Azure Container Instances + Logic Apps - 利点: 既存Pythonコードをそのまま利用可能 - 適用: 定期実行にLogic Appsのスケジューラを使用 3. Azure Batch + Logic Apps - 利点: 大量データ処理、複雑なワークロード対応 - 適用: より高度な処理が必要な場合 どの方式がお好みですか? 最も簡単で運用コストが低い Azure Functions をお勧めします。以下の点で変更が必要です: ・・・
  12. Azure Functions 化してみる •Azure Functions版のコストレポートツールが完成しました! 作成したファイル 1. function_app.py - Azure

    Functions メイン実装 2. requirements-function.txt - Function用依存関係 3. host.json - Function設定 4. local.settings.json - ローカル環境設定 5. deploy.md - 詳細なデプロイガイド 主な機能 ・・・ スケジュール設定 ・・・ 次のステップ 1. Azure リソース作成 (deploy.mdの手順2) 2. サービスプリンシパル設定 (手順3) 3. 環境変数設定 (手順5) 4. デプロイ実行 (手順7)
  13. 解説もお願いしてみる 全自動でプログラムが完成したのはいいが、中身が全くわからん・・・ > function_app.py の処理内容を、Azure初心者にも分かるように解説してください •function_app.py の解説(Azure初心者向け) 全体概要 このファイルはAzure Functions(Azureのサーバーレス機能)で動作するプログラムです。Azure

    OpenAIの利用料金を自動で集計してExcelレポートを作成します。 主要な構成要素 1. ライブラリの読み込み import azure.functions as func from azure.identity import DefaultAzureCredential from azure.mgmt.costmanagement import CostManagementClient from azure.storage.blob import BlobServiceClient 説明: Azureの各サービスと連携するためのライブラリを読み込んでいます。 - azure.functions: Azure Functionsで動作させるため - azure.identity: Azureへの認証 - azure.mgmt.costmanagement: 料金データの取得 - azure.storage.blob: Excelファイルの保存
  14. Claude Code を使ってみて ・プログラムを作成するにも、何からどうやればいいのかわからん → 最初に要件を整理してもらうと良い → 要件整理が終わったら、自動でタスクに分割して作業を進めてくれる ・選択肢が複数あって、どれを選べばよいかわからん →

    お勧めを教えてもらう (お勧めの理由も教えてくれる) ・作ってくれたプログラムがサッパリ読めない → 「解説して」とお願いする → 上手く使うと、プログラミングや Azure の勉強にもなるかも (?)
  15. まとめ もともとプログラミングができる人 → Vibe Coding を使って生産性を加速 プログラミングができない人 → Vibe Coding

    って、ある程度プログラムができる人のものでしょ? → AI に教えてもらいながら、勉強しながらプログラムを作れる