Azure Developer CLI (azd) の7月ラウンドアップです。前回の投稿以降、5回のリリースが行われました:1.27.01.27.11.28.01.28.11.29.0。以下は新機能、変更点、修正点で、詳しく知りたい場合はプルリクエストへのリンクも記載しています。

フィードバックや質問がある場合は、GitHub のリリースディスカッションにご参加ください。

ハイライト:

  • 新しい azd tool uninstall コマンドにより、ツールのインストール、アップグレード、アンインストールのライフサイクルが完成しました。
  • 拡張機能は -s/--source でレジストリの場所から直接インストールでき、--no-dependencies で依存関係の解決をスキップできます。
  • Azure AI Foundry プロジェクト、エージェント、および関連リソースを azure.yaml に直接モデル化できます。
  • Azure App Service のコンテナー展開では、host: appservicelanguage: docker でイメージをプッシュして Web App for Containers を実行できます。
  • azd は CI/CD または AI エージェント環境を検出すると自動的に非対話モードに切り替わり、コマンドがプロンプトでハングせずに即座に失敗します。
  • 破壊的変更:azd tool コマンドの skill --host フラグが --agent に名前変更されました。

🌐 AI Engineer World’s Fair での Microsoft Foundry

AI Engineer World’s Fair の Pablo Castro(Microsoft)の「On AI and Knowledge」セッションで、Microsoft Foundry チームが azd 拡張プラットフォーム上に構築したコマンドライン体験を発表しました。これは拡張フレームワークでチームが提供できる優れた例であり、プラットフォームが実現する CLI ストーリーの典型です。実際の動作を見るには YouTube のデモセグメントをご覧ください。Microsoft Foundry チームが azd 上で構築してくれたことに感謝します!

新機能

🔌 拡張機能

これらのリリースを通じて、拡張機能のインストールおよび作成体験を継続的に改善しました。

  • azd extension installazd extension upgradeazd extension list-s/--source(URL またはローカルパス)でレジストリの場所を直接受け付けるようになり、事前に azd extension source add を実行する必要がなくなりました。直接の場所は検証され、解決が続く前に永続化されたソースとして登録されます。[#8792]
  • azd extension install--no-dependencies フラグを追加し、宣言された依存関係を解決・インストールせずに指定された拡張機能のみをインストールできます。[#8927]
  • azure.yaml から拡張されたサービスレベルの env 値を拡張サービス構成に公開し、拡張機能が azd が解決する環境値と同じ値を読み取れるようにしました。[#8936]

🧰 ツール管理

  • ツールのインストール、アップグレード、アンインストールのライフサイクルを完成させる azd tool uninstall コマンドを追加しました。--all--dry-run、インタラクティブな複数選択、エージェントごとのスキル削除、および --output json をサポートします。[#8794]

🤖 Azure AI Foundry モデル化

  • Azure AI Foundry プロジェクト、エージェント、および関連リソースを azure.yaml に直接モデル化するサポートを追加しました。$ref ファイルインクルード、セキュアバイデフォルトのネットワーク、Bicep や Terraform を使用しない init パスを含みます。[#8818]

🏗️ プロビジョニングと展開

これらの変更により azd が展開できる範囲が広がり、プロバイダーに関係なく拡張機能がプロビジョニング検証に参加できるようになりました。

  • Azure App Service のコンテナー展開サポートを追加しました。host: appservicelanguage: docker(または docker.path)で構成されたサービスは、コンテナーイメージを Azure Container Registry (ACR) にプッシュし、サイトのコンテナー構成を更新して Web App for Containers のシナリオを有効にします。[#8847]
  • すべてのプロバイダーに対してプロビジョニング前に実行されるプロバイダー非依存の provision 検証チェックを追加しました。validation-provider 機能を備えた拡張機能は、プロビジョニングプロバイダー(Bicep、Terraform、または拡張機能提供のプロバイダー)に関係なく、クライアント側のチェックに貢献できるようになりました。Bicep のローカル事前検証中だけでなくです。[#9019]

🤖 CI/CD とエージェント環境

  • continuous integration and delivery (CI/CD) または AI エージェント環境を検出すると自動的に非対話(プロンプトなし)モードを有効にし、コマンドがプロンプトでハングせずに明確なエラーで即座に失敗するようにしました。オプトアウトするには AZD_NON_INTERACTIVE=false を設定します。確認プロンプトも、標準入力にこれ以上の入力がない場合にデフォルト値を尊重するようになりました。[#9125]

破壊的変更

  • skill --host フラグが --agent になりました。 azd tool installazd tool upgradeazd tool uninstall で、--host フラグが --agent に名前変更されました。azd tool list --output json および azd tool check --output json のインストール済みスキルは、エージェントごとに1行ずつ展開され、agent フィールドを含むようになりました。--host を渡したり、以前の形式を読み取るスクリプトや JSON コンシューマーを更新してください。[#9045]

🪲 修正されたバグ

拡張機能とツール

  • azd tool install azure-skills が Visual Studio Code Copilot Chat ランチャースタブを作動中の Copilot Command Line Interface (CLI) ホストと誤認識する問題を修正しました。ホスト選択に機能的プローブを使用するようになったため、macOS でインストールがサイレントで no-op になることや、Linux で PATH プロンプトで停止することがなくなりました。[#8805]
  • 依存関係を持つ Visual Studio Code 拡張機能(例:vscode-azure-tools)や、macOS および Linux で Homebrew cask 経由でインストールされた GitHub Copilot CLI で azd tool uninstall が失敗する問題を修正しました。アンインストールはどのパッケージマネージャーがインストールを所有しているかを検出し、それに応じて削除し、自己管理インストールで手動削除が必要な場合はガイダンスを提供します。[#8875]
  • 生成された azd extension install 補完が拡張機能 ID と .zip ファイルパスを提供するように修正しました。[#8887]
  • 一時的なファイルロックで保持されている拡張機能実行ファイルを置き換える際に、Windows で断続的に「アクセスが拒否されました」エラーが発生して azd extension install が失敗する問題を修正しました。[#9161]
  • プロジェクト構成の書き込みをシリアライズすることで、同時拡張機能更新で azure.yaml のサービスフィールドが失われる問題を修正しました。[#9211]
  • azd がプロジェクトコマンドを実行する前に azure.yaml から宣言または推論されたすべての不足プロバイダーを解決するように、プロジェクト拡張機能要件の自動インストールを修正・改善しました。サポートされていない最初のプロバイダーで失敗する代わりにです。[#9218]

プロビジョニングと構成

  • 拡張機能提供のサービスホストまたはプロビジョニングプロバイダーを使用するプロジェクトの azd env refresh を修正し、まだ展開が存在しない場合に成功を報告します。[#9017]
  • azure.yaml シリアライズが azure.ai.projectazure.ai.connectionmicrosoft.foundry などのコードレスリソースホストを使用するサービスの空の project および language フィールドを書き込む問題を修正しました。これらのフィールドは空の場合は省略されるようになりました。[#8937]
  • モデルカタログとクォータプロンプトから非推奨モデルをデフォルトで除外するようにしました。[#8842]
  • 環境の .env ファイルで定義された動的リンカーおよびローダー制御変数(LD_PRELOADLD_LIBRARY_PATHLD_AUDITDYLD_INSERT_LIBRARIES など)を、docker、npm、python などのツールサブプロセスに転送しないようにしました。[#8949]
  • コンテナーベースの Azure App Service サービスの azd deploy が無関係なサイト構成を上書きする問題を修正しました。コンテナーイメージは専用の App Service 構成エンドポイントを通じて更新されるようになりました。[#9281]

継続的インテグレーションと更新

  • Terraform ベースのプロジェクトで CI/CD 時に azd down --no-prompt がハングする問題を修正し、非対話的に実行する際に destroy を自動承認するようにし、新規エージェントで azd down --force がバックエンド初期化エラーで失敗する問題を修正しました。[#9143]
  • azd update のフォローアップコマンドが azd version を使用するように修正しました。貢献してくれた @rguptar に感謝します![#9083]

その他の変更

  • 拡張機能 Software Development Kit (SDK) の ServiceConfig にサービスの uses(依存関係)リストを公開し、拡張機能が SetServiceConfigValue 経由ではなく直接サービスおよびリソースの依存関係を読み取れるようにしました。[#8838]
  • extension.yaml のプロバイダー宣言を拡張機能コードによって登録されたプロバイダーと照合して検証する拡張 SDK ヘルパーを追加しました。[#9033]
  • Azure Resource Manager (ARM) リクエスト相関 ID を、OpenTelemetry トレース ID から損失なく導出された正規のハイフン付きグローバル一意識別子として送信するようにし、装飾のない 32 文字の文字列ではなくなりました。これには azd の直接 ARM 呼び出しの x-ms-correlation-request-id ヘッダーと、Terraform AzureRM プロバイダーに渡される ARM_CORRELATION_REQUEST_ID 値の両方が含まれ、azd を ARM 仕様および他の Azure ツールと整合させます。[#9141]
  • 自動 azd tool 初回インストールプロンプトと定期的な更新通知の表示を停止しました。明示的な azd tool コマンドは変更されません。[#9261]
  • provisionupdowninfra.provider テレメトリ属性を発行し、プロビジョニング実行をインフラストラクチャプロバイダーごとにセグメント化できるようにしました。[#9091]
  • execution.environment テレメトリフィールドで Microsoft Foundry Skill からの azd 呼び出しを認識するようにしました。[#9167]
  • execution.environment テレメトリフィールドで GitHub Copilot アプリを GitHub Copilot CLI から分離して報告するようにしました。[#9288]
  • バンドルされた GitHub CLI を v2.96.0 に更新しました。[#9245]

新しいドキュメント

Microsoft Learn の新しいおよび更新された azd ドキュメント:

新しいテンプレート

コミュニティテンプレートは、迅速に開始し、一般的なシナリオをカバーし、Azure Developer CLI で実際のソリューションを展開する方法を示すのに役立ちます。

  • Azure Functions Timer トリガー クイックスタート by Azure Functions Team、Timer トリガーパターンを5つの言語に拡張。各サンプルは azd で Azure Functions Flex Consumption に展開され、マネージド ID と仮想ネットワークを使用してデフォルトでセキュアです:
    • Python:Python で書かれた Azure Functions Timer トリガー クイックスタート。
    • JavaScript:JavaScript で書かれた Azure Functions Timer トリガー クイックスタート。
    • TypeScript:TypeScript で書かれた Azure Functions Timer トリガー クイックスタート。
    • Java:Java で書かれた Azure Functions Timer トリガー クイックスタート。
    • PowerShell:PowerShell で書かれた Azure Functions Timer トリガー クイックスタート。
  • Durable Functions fan-out/fan-in クイックスタート by Azure Functions Team、5つの言語で fan-out/fan-in オーケストレーションパターンを示し、それぞれ azd で Azure Functions Flex Consumption に展開され、マネージド ID と仮想ネットワークを使用:
    • Java:Java で書かれた Durable Functions fan-out/fan-in クイックスタート。
    • JavaScript:JavaScript で書かれた Durable Functions fan-out/fan-in クイックスタート。
    • TypeScript:TypeScript で書かれた Durable Functions fan-out/fan-in クイックスタート。
    • Python:Python で書かれた Durable Functions fan-out/fan-in クイックスタート。
    • PowerShell:PowerShell で書かれた Durable Functions fan-out/fan-in クイックスタート。
  • Remote Model Context Protocol (MCP) Functions サンプル by Azure Functions Team、Azure Functions でカスタムリモート MCP サーバーを構築および展開する方法を示します:
    • JavaScript による Remote MCP Functions:このシナリオは、Microsoft Entra を ID プロバイダーとして使用した組み込み認証で、Azure Functions と JavaScript を使用してカスタムリモート MCP サーバーをクラウドに構築および展開する方法を示します。
    • Durable Functions (.NET) を使用した長時間実行 MCP ツール:Durable Functions でバックアップされ、予算化された start-and-poll パターンを持つ長時間実行 MCP ツールを実行する .NET 分離 Azure Functions MCP サーバーで、Durable Task Scheduler バックエンドとマネージド ID を使用して azd で展開されます。
  • Azure Developer CLI (Terraform) を使用した Azure Functions C# HTTP トリガー by Azure Functions Team:C#(分離ワーカー)で書かれた Azure Functions HTTP トリガー クイックスタートで、Terraform をインフラストラクチャアズコードプロバイダーとして使用し、マネージド ID と仮想ネットワークを備えたセキュアバイデフォルトの展開で azd で Azure Functions Flex Consumption に展開されます。
  • Azure API Management と Application Gateway による mTLS by Ronald Bosma:Azure API Management と Application Gateway による相互 Transport Layer Security (mTLS) のデモ。API Management に直接呼び出す場合と Application Gateway の背後にある場合のクライアント証明書の検証方法、および mTLS を使用して API Management からバックエンドシステムへの接続をセキュアにする方法を示します。貢献してくれた Ronald Bosma に感謝します!

コミュニティの貢献のおかげで Azure Developer CLI テンプレートギャラリーは成長を続けています。ありがとうございます!

🙋‍♀️ azd を初めてご利用の方へ

Azure Developer CLI を初めてご利用の方へ、azd はオープンソースのコマンドラインツールで、アプリケーションをローカル開発環境から Azure にすばやく移行するのに役立ちます。ターミナル、エディター、または CI/CD で作業している場合でも、ワークフローの主要なステージに対応する開発者フレンドリーなコマンドを提供します。