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
450
Azure Developer CLIの振り返りとDeep Dive
Kento.Yamada
October 28, 2023
Tweet
Share
More Decks by Kento.Yamada
See All by Kento.Yamada
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
36
クラウドインフラ構築における.NETとその他IaCの比較
ymd65536
1
220
[LT]C#および.NETに対する誤解をひも解くPart2(JetBrains編)
ymd65536
0
30
[LT]GitHub CopilotにC#のHelloWorldを書いてもらうと
ymd65536
0
51
Dev ContainersとGitHub Codespacesの素敵な関係
ymd65536
1
170
.NET Aspireのクラウド対応検証: Azureと他環境での実践
ymd65536
1
790
C#および.NETに対する誤解をひも解く
ymd65536
0
370
【Google Cloudパートナー企業登壇】LINEBot開発の環境構築ベストプラクティス
ymd65536
0
18
Microsoft Playwright Testing 再入門
ymd65536
0
280
Other Decks in Programming
See All in Programming
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
Criando Commits Incríveis no Git
marcelgsantos
2
170
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
2
460
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
3
1.1k
42 best practices for Symfony, a decade later
tucksaun
1
180
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
710
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
1
370
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
900
Featured
See All Featured
Unsuck your backbone
ammeep
669
57k
Being A Developer After 40
akosma
87
590k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
A Modern Web Designer's Workflow
chriscoyier
693
190k
How to Ace a Technical Interview
jacobian
276
23k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
How GitHub (no longer) Works
holman
311
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Done Done
chrislema
181
16k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
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