5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft AzureAdvent Calendar 2024

Day 10

Azure Developer CLIで優勝していくことにするわね

Last updated at Posted at 2024-12-30

この記事で伝えたいこと(ポイント)

  • Azure Developer CLIについて見ていくよ
  • 特徴をまとめたよ
  • 使い方や注意点をまとめたよ

はじめに

この記事ではAzure Developer CLI(以下、本文ではazd)について解説した記事です。
内容としては2023年10月の.NETラボ勉強会で発表した内容を記載しています。

登壇資料:Azure Developer CLIの振り返りとDeep Dive

公式ドキュメント:Azure Developer CLI (azd) | Microsoft Learn

Azure Developer CLIとは

2022年7月にAzure CLIとは別の系統として開発された開発者向けデベロッパーツールです。翌年の2023年5月にGAしたのち、現在においても継続して機能が追加されています。

簡単にいうとAzureのインフラをテンプレート単位で展開できるCLIです。

Azure CLIとは別の形で開発されているため、Azure CLIに依存することなく利用できます。(Azure CLIが無くても利用できます)

azdテンプレートというテンプレートを使ってインフラをプロビジョニングし、その後にデプロイします。

どのようなテンプレートがあるかはAwesome AZD Templates | Awesome Azure Dev CLIで確認できますので気になる方はチェックしてみましょう。

なお、テンプレートはBicepあるいはTerraformで構成できます。
※Terraformによるテンプレート作成はまだベータ版です。

Terraform を Azure Developer CLI (azd) のコードとしてのインフラストラクチャ ツールとして使用する

テンプレートは自分で作れるのか

V1.3.0でAdds support for custom template sources.の記載があるとおり
テンプレートは自作して展開できます。

実装

azdの実装としてはGolangが使われており、具体的にはCobraというGolangでモダンなCLIアプリケーションを開発するためのフレームワークが使われています。

azdのセットアップ

azdのセットアップ方法はいくつかありますが、実際に使ったことがある使い方をいくつか紹介すると4つほどあります。

  • CLIで利用
  • Visual Studio Code
  • Visual Studio
  • GitHub Codespaces
    • devcontainer.jsonのfeatureで定義できる

参考:サポート対象言語と環境

インストール方法

Windowsでは3つの方法があります。

  • winget
  • chocolatey
  • スクリプトをPowerShell上で実行する

Linuxでは3つの方法があります。

  • スクリプトをbash上で実行する
  • .debパッケージ
  • .rpmパッケージ

参考:Azure Developer CLI をインストールまたは更新する

最後にmacOSでは2つの方法があります。

  • HomeBrew(推奨)
  • スクリプトをシェルで実行する

azdでよく使うコマンド・使い方

よく使うコマンドとしては以下の通りです。

コマンド 説明
azd auth login 認証
azd config list azdの設定
azd env list azdで利用する環境変数のリスト
azd package ビルドとパッケージング
azd provision 環境構築
azd deploy デプロイ
azd up package,provision,deployを1工程で実行
azd down リソースを削除する。azd upの逆

使い方を図解すると以下の通りです。

image.png

なお、az auth loginについては過去バージョンだとaz loginと定義されている場合があります。バージョンによってはwarningが出ますが、動作には影響がありません。

image.png

補足:Provisioning(プロビジョニング)とは

筆者が昔過ごしていた某通信キャリアにおいては割と当たり前に使われている業界用語みたいなものでした。知らない人も多いのかなと思ったので補足しておきます。

ProvisioningとはとりわけIT分野においてはリソースを割り当てるという意味があります。
クラウド技術ではインフラストラクチャーを展開する意味で使われる言葉になります。

なお、azdではアプリケーションをインフラに乗せることをデプロイ、インフラを展開することをプロビジョニングと定義しています。つまり、プロビジョニングまで実行するとインフラだけできて、アプリはデプロイされないということになります。

まとめ

azdを使うことでインフラをテンプレート化しつつ、アプリケーションを簡単にデプロイできます。
今までのツールと違うところはインフラの展開とアプリケーションの展開が全く別のコマンドで行えるというところです。

個人的にはTerraformの対応が進むともっと良いツールに化けるのではないかとちょっと期待しています。

おわり

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?