Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Azure Developer CLIの振り返りとDeep Dive
Search
Kento.Yamada
October 28, 2023
Programming
0
560
Azure Developer CLIの振り返りとDeep Dive
Kento.Yamada
October 28, 2023
Tweet
Share
More Decks by Kento.Yamada
See All by Kento.Yamada
AIエージェント開発、DevOps and LLMOps
ymd65536
1
340
なぜ発信するのか。何を伝えるのか Qiita Tech Festa 2025の結果報告
ymd65536
0
55
Google ADKを使ったメディア生成AI入門(概要)
ymd65536
1
120
GitHubとAzureを使って開発者になろう
ymd65536
1
160
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
300
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
180
Agent Development Kit (ADK) でLINE Botを作ってみた
ymd65536
0
130
ビカム・ア・コパイロット
ymd65536
1
240
GitHub Copilot for Azureってなんだろう
ymd65536
1
91
Other Decks in Programming
See All in Programming
A Gopher's Guide to Vibe Coding
danicat
0
170
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
330
AWS Serverless Application Model入門_20250708
smatsuzaki
0
120
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.2k
Understanding Ruby Grammar Through Conflicts
yui_knk
1
120
なぜ今、Terraformの本を書いたのか? - 著者陣に聞く!『Terraformではじめる実践IaC』登壇資料
fufuhu
4
650
レガシープロジェクトで最大限AIの恩恵を受けられるようClaude Codeを利用する
tk1351
2
1k
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
180
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.8k
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
900
実践!App Intents対応
yuukiw00w
1
350
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
490
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
How GitHub (no longer) Works
holman
315
140k
Navigating Team Friction
lara
189
15k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Transcript
Azure Developer CLIの振り返りとDeep Dive 1 Kento.Yamada (@ymd65536)
このLTでやること • 自己紹介 • Microsoft関連技術の遍歴 • Azure Developer CLI(azd)とは? •
azdテンプレートとは?? • 利用できる環境 • インストール方法 • azdの使い方 • サポートされる言語/IaCプロバイダー • 仕様 • アップデート • Tips 2
自己紹介 3 Amazon ベストセラー獲得 Kento.Yamada (github,Twitter,zenn,Qiita@ymd65536) 経歴 • 2022年10月~現在 虎ノ門のCIer
◦ Multi Cloud Developer • (2016年~2022年9月)某通信キャリアの子会社 ◦ ITスペシャリスト
自己紹介から見えないMicrosoft関連技術の遍歴 4 現在の企業に転職するまでにやっていたこと(一部抜粋) • IEとVBAを連携させてWebオートメーションを実行するツールの修正 • Microsoft EdgeのIEモードに移行するためにWebdriverやIEの仕様を細かく調査 ◦ このときの話は記事に書いています
▪ SeleniumなしでWebDriverを操作するには - Part1 最終的にはIEっぽいブラウザを作成するところ までいきました!
Azure Developer CLI(azd)とは? 5
Azure上でアプリケーションを手軽にデプロイできる! Microsoft Learn 「Azure Developer CLI (azd)」から引用: https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/ GAアナウンス:https://devblogs.microsoft.com/azure-sdk/azd-ga-announcement/ →azdテンプレートを作成してインフラとアプリケーションをデプロイする!!
6
azdテンプレートとは?? 7 ちなみにすぐにお試しをしたい人は「Awesome AZD Templates」というテンプレート一覧からすぐにデプロイできま す。https://azure.github.io/awesome-azd/ azdで利用するAzureのインフラストラクチャやその上で動作するアプリケーションをデプロイ するテンプレートのこと インフラだけでなくアプリケーションも込みでデプロイできるというのがミソ!
利用できる環境 8
ローカル環境 9 • CLIで利用 ◦ Windows、Linux、Mac • Visual Studio Code
◦ 拡張昨機能から利用 • Visual Studio ◦ プレビュー版で利用できる サポートされている言語と環境 - 参考: https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/supported-languages-environments
ブラウザベース 10 • GitHub Codespaces → .devcontainer.jsonに設定しておくと利用できる • Azure Cloud
Shell ◦ デフォルトでインストールされてます ▪ v1.4.2 がインストールされている(2023年10月25日)
コンテナベース 11 • Dev Container → .devcontainer.jsonに設定しておくと利用できる ※Docker を利用できる環境の場合は以下のコマンドで利用できます。 ※<version>には任意のバージョン番号を入れる
docker run -it mcr.microsoft.com/azure-dev-cli-apps:<version>
インストール方法 12
インストール方法(Windows) 13 主に3つ • winget • chocolatey • スクリプトをPowerShell上で実行する 参考:Azure
Developer CLIをインストールまたは更新する https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/install-azd
インストール方法(Linux) 14 主に3つ • スクリプトをbash上で実行する • .debパッケージ • .rpmパッケージ 参考:Azure
Developer CLIをインストールまたは更新する https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/install-azd
インストール方法(Mac) 15 前提:Apple Silicon MacではRosetta 2のインストールが必要 主に2つ • HomeBrew ◦
推奨 • スクリプトをシェルで実行する 参考:Azure Developer CLIをインストールまたは更新する https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/install-azd
azdの使い方 16
よく使うコマンド 17 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の逆
[図解] コマンドの使い方 18 azd auth login azd package azd provision
azd deploy azd up azd down azd init azd env azd config
補足:azd login → azd auth login 19 ※とはいえ、1.4.2でもazd loginを実行すると動きます。
コマンド利用時の注意点 20 azdのサブコマンドそれぞれにはアルファ版とベータ版が存在します。 アルファ版:実験的な機能であり、安定はしていない。開発中の機能 ベータ版:十分なテストがなされ、安定している。 参考:Azure Developer CLI機能のバージョン管理とリリース戦略 https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/feature-versi oning
サポートされる言語/IaCプロバイダー 21
サポート言語 22 • Node.js • Python • .NET • Java
サポートされるIaCプロバイダー 23 • Bicep • terraform(アルファ) ※アルファ版:実験的な機能であり、安定はしていない。開発中の機能
仕様 24
主な仕様 25 • azdはGo言語で実装 • CLIフレームワーク「Cobra」 ◦ ルートを作ったらその配下にサブコマンドを作るという実装 • DIコンテナ「golobby/container」
リポジトリ:https://github.com/Azure/azure-dev
アップデート 〜1.2.0から最新まで〜 26
直近のコミット履歴 27 • https://github.com/Azure/azure-dev/graphs/commit-activity このスライドを作成している間も盛んにコミットされている!!
私がJAZUGでazdを紹介した日(1.2.0)→直近まで(1.4.2) 28 1.4.2が最新バージョンです。 ※なお、ローカルインストールの場合に限る。拡張機能はバージョンが違う
v1.2.0 29
Add --preview to azd provision to get the changes. 30
v1.2.0 azd provisionに変更点を表示する--previewが追加されました。 terraformでいうところのterraform planのようなものです。
Support --principal-id param for azd pipeline config to reuse existing
service principal. 31 v1.2.0 azd pipeline configがサービスプリンシパルに対応しました。--principal-idオプションを使っ たazd pipeline configが実行できます。
Adds optional support for text templates in AKS k8s manifests.
32 Azure k8s Serviceに利用するマニュフェストテンプレートに対応しました。 v1.2.0
v1.3.0 33
Adds support for custom template sources. 34 v1.3.0 カスタムされたazdテンプレートソースに対応しました。 デフォルトではawesome-azdにあるTemplate
Libraryからの取得ですが この機能追加によって 自分で作成したテンプレートを自分の環境に配置し、限定された環境に対してazdテンプ レートを配信できます。 awesome-azd(参考):https://azure.github.io/awesome-azd/
Support for .bicepparam 35 v1.3.0 Bicep用のデプロイパラメータに対応しました。 ※What is .bicepparam ?
Bicep 0.18.4から利用できるパラメータファイルのこと 今まではjsonでパラメータを記述する必要がありました。 参考:https://github.com/Azure/bicep/releases/tag/v0.18.4
New simplified azd init to initialize your existing application for
Azure (alpha feature) 36 v1.3.0 • https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-september-2023-re lease/ 既存のアプリケーションを 参考にazdテンプレートを自動で生 成する機能が追加されました。 詳しくMicrosoftの開発者ブログに あります!
Support for Cloud Native Buildpacks (alpha feature) 37 v1.3.0 ソースコードからDockerイメージを作成できるCloud
Native Buildpacksに対応しました。 現在はアルファ版のため、実験的な実装になります。
v1.3.1 38
azd package support for user specified output paths 39 v1.3.1
azd package の機能追加 azd packageによる出力をユーザが指定したパスに設定できる機能
v1.4.0 40
Adds support for provision state to the bicep provider. 41
v1.4.0 Bicepにおいてプロビジョン(環境構築)の状態をスキップして「azd provision」の実行ができ るようになった。
Support for remote environments. 42 v1.4.0 Azure Blob Storage などを活用して環境変数をリモートで管理できます。
ストレージに配置するのはazdが生成する .envやconfig.jsonです。
v1.4.2(最新) 43
Feature Clickable Template Links in Terminal 44 v1.4.2 azd template
listというテンプレートの一覧を表示するコマンドの機能追加 出力されたテンプレート一覧にあるリンクをターミナル上でクリックできるようになりました。 ※MacおよびAzure Powershellなど特定のターミナルではリンクをクリックできない
補足:Feature Clickable Template Links in Terminal 45 こんな感じで リンク部分が青くなります。
Feature Display the Subscription Name and ID 46 v1.4.2 azd
provision コマンドの実行において サブスクリプション名とIDを表示する機能の追加です。
まとめ • azdというすごいデプロイツールがあるよ! • azdを使うと簡単にAzureのデプロイが体感できるよ! • インストール方法や利用できる環境をみたよ! • 仕様を把握する上で前提知識を3つ振り返ったよ! •
最近のアップデートをトレースしたよ! 47
Tips 48
49 • https://zenn.dev/ymd65536/articles/azd_getting_started 実はこんなこともできます!デェーン
そんなこともあろうかと準備しております!デェーン 50 • https://zenn.dev/ymd65536/articles/githubcli_getting_started