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
310
Azure Developer CLIの振り返りとDeep Dive
Kento.Yamada
October 28, 2023
Tweet
Share
More Decks by Kento.Yamada
See All by Kento.Yamada
宇宙一早くAmazon Bedrock 生成AIアプリ開発入門の献本が届いたので 感想をしみじみ語る
ymd65536
1
310
newMVPが気になるトピック
ymd65536
0
7
Google Cloudで始めるプラットフォームエンジニアリング
ymd65536
0
380
マルチクラウドで認証したい ~CloudRunと.NET8 Blazor ServerでAzure Open AIをセキュアに呼び出す~
ymd65536
0
150
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
2
950
Azure以外のクラウドではじめる.NET
ymd65536
1
65
Microsoft Playwrightで始めるブラウザテスト
ymd65536
0
580
個人的に注目したMicrosoftとGitHubのアップデート情報
ymd65536
1
90
Google製LLM PaLM2と対話できるLINE_Botを爆速開発ハンズオン
ymd65536
0
59
Other Decks in Programming
See All in Programming
Exploring the Gradually Lost Technical Skills in the Cloud Native Era
hwchiu
2
3.9k
Modern Angular: Renovation for Your Applications
manfredsteyer
PRO
0
140
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
小さな開発会社を作った理由
polidog
0
1.9k
日付と正規化
megmogmog1965
0
140
生成AIをkintoneに連携してみた
hideg
0
230
しくじり先生 Image Matching Challenge 2024 編
goosehaaan
0
810
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
「2024年版 Kotlin サーバーサイドプログラミング実践開発」の補講 〜O/Rマッパー編〜
n_takehata
2
260
[After Kotlin Fest 2024 LT Night @ Sansan] もっともっとKotlinを好きになる!K2 Compiler Pluginで遊んでみよう!
kitakkun
2
260
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
160
Featured
See All Featured
Scaling GitHub
holman
458
140k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Speed Design
sergeychernyshev
9
270
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
It's Worth the Effort
3n
181
27k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
Embracing the Ebb and Flow
colly
81
4.3k
GitHub's CSS Performance
jonrohan
1026
450k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
Code Review Best Practice
trishagee
58
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
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