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
420
Azure Developer CLIの振り返りとDeep Dive
Kento.Yamada
October 28, 2023
Tweet
Share
More Decks by Kento.Yamada
See All by Kento.Yamada
[LT]C#および.NETに対する誤解をひも解くPart2(JetBrains編)
ymd65536
0
27
[LT]GitHub CopilotにC#のHelloWorldを書いてもらうと
ymd65536
0
41
Dev ContainersとGitHub Codespacesの素敵な関係
ymd65536
1
150
.NET Aspireのクラウド対応検証: Azureと他環境での実践
ymd65536
1
730
C#および.NETに対する誤解をひも解く
ymd65536
0
360
【Google Cloudパートナー企業登壇】LINEBot開発の環境構築ベストプラクティス
ymd65536
0
16
Microsoft Playwright Testing 再入門
ymd65536
0
250
宇宙一早くAmazon Bedrock 生成AIアプリ開発入門の献本が届いたので 感想をしみじみ語る
ymd65536
1
500
newMVPが気になるトピック
ymd65536
0
20
Other Decks in Programming
See All in Programming
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
910
C++でシェーダを書く
fadis
6
4.1k
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
170
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
190
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.7k
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
120
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
920
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
230
Quine, Polyglot, 良いコード
qnighy
4
640
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Six Lessons from altMBA
skipperchong
27
3.5k
How to train your dragon (web standard)
notwaldorf
88
5.7k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Thoughts on Productivity
jonyablonski
67
4.3k
Producing Creativity
orderedlist
PRO
341
39k
Bash Introduction
62gerente
608
210k
Building Applications with DynamoDB
mza
90
6.1k
A Tale of Four Properties
chriscoyier
156
23k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
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