Slide 1

Slide 1 text

Azure Developer CLIの振り返りとDeep Dive 1 Kento.Yamada (@ymd65536)

Slide 2

Slide 2 text

このLTでやること ● 自己紹介 ● Microsoft関連技術の遍歴 ● Azure Developer CLI(azd)とは? ● azdテンプレートとは?? ● 利用できる環境 ● インストール方法 ● azdの使い方 ● サポートされる言語/IaCプロバイダー ● 仕様 ● アップデート ● Tips 2

Slide 3

Slide 3 text

自己紹介 3 Amazon ベストセラー獲得 Kento.Yamada (github,Twitter,zenn,Qiita@ymd65536) 経歴 ● 2022年10月~現在 虎ノ門のCIer ○ Multi Cloud Developer ● (2016年~2022年9月)某通信キャリアの子会社 ○ ITスペシャリスト

Slide 4

Slide 4 text

自己紹介から見えないMicrosoft関連技術の遍歴 4 現在の企業に転職するまでにやっていたこと(一部抜粋) ● IEとVBAを連携させてWebオートメーションを実行するツールの修正 ● Microsoft EdgeのIEモードに移行するためにWebdriverやIEの仕様を細かく調査 ○ このときの話は記事に書いています ■ SeleniumなしでWebDriverを操作するには - Part1 最終的にはIEっぽいブラウザを作成するところ までいきました!

Slide 5

Slide 5 text

Azure Developer CLI(azd)とは? 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

azdテンプレートとは?? 7 ちなみにすぐにお試しをしたい人は「Awesome AZD Templates」というテンプレート一覧からすぐにデプロイできま す。https://azure.github.io/awesome-azd/ azdで利用するAzureのインフラストラクチャやその上で動作するアプリケーションをデプロイ するテンプレートのこと インフラだけでなくアプリケーションも込みでデプロイできるというのがミソ!

Slide 8

Slide 8 text

利用できる環境 8

Slide 9

Slide 9 text

ローカル環境 9 ● CLIで利用 ○ Windows、Linux、Mac ● Visual Studio Code ○ 拡張昨機能から利用 ● Visual Studio ○ プレビュー版で利用できる サポートされている言語と環境 - 参考: https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/supported-languages-environments

Slide 10

Slide 10 text

ブラウザベース 10 ● GitHub Codespaces → .devcontainer.jsonに設定しておくと利用できる ● Azure Cloud Shell ○ デフォルトでインストールされてます ■ v1.4.2 がインストールされている(2023年10月25日)

Slide 11

Slide 11 text

コンテナベース 11 ● Dev Container → .devcontainer.jsonに設定しておくと利用できる ※Docker を利用できる環境の場合は以下のコマンドで利用できます。 ※には任意のバージョン番号を入れる docker run -it mcr.microsoft.com/azure-dev-cli-apps:

Slide 12

Slide 12 text

インストール方法 12

Slide 13

Slide 13 text

インストール方法(Windows) 13 主に3つ ● winget ● chocolatey ● スクリプトをPowerShell上で実行する 参考:Azure Developer CLIをインストールまたは更新する https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/install-azd

Slide 14

Slide 14 text

インストール方法(Linux) 14 主に3つ ● スクリプトをbash上で実行する ● .debパッケージ ● .rpmパッケージ 参考:Azure Developer CLIをインストールまたは更新する https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/install-azd

Slide 15

Slide 15 text

インストール方法(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

Slide 16

Slide 16 text

azdの使い方 16

Slide 17

Slide 17 text

よく使うコマンド 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の逆

Slide 18

Slide 18 text

[図解] コマンドの使い方 18 azd auth login azd package azd provision azd deploy azd up azd down azd init azd env azd config

Slide 19

Slide 19 text

補足:azd login → azd auth login 19 ※とはいえ、1.4.2でもazd loginを実行すると動きます。

Slide 20

Slide 20 text

コマンド利用時の注意点 20 azdのサブコマンドそれぞれにはアルファ版とベータ版が存在します。 アルファ版:実験的な機能であり、安定はしていない。開発中の機能 ベータ版:十分なテストがなされ、安定している。 参考:Azure Developer CLI機能のバージョン管理とリリース戦略 https://learn.microsoft.com/ja-jp/azure/developer/azure-developer-cli/feature-versi oning

Slide 21

Slide 21 text

サポートされる言語/IaCプロバイダー 21

Slide 22

Slide 22 text

サポート言語 22 ● Node.js ● Python ● .NET ● Java

Slide 23

Slide 23 text

サポートされるIaCプロバイダー 23 ● Bicep ● terraform(アルファ) ※アルファ版:実験的な機能であり、安定はしていない。開発中の機能

Slide 24

Slide 24 text

仕様 24

Slide 25

Slide 25 text

主な仕様 25 ● azdはGo言語で実装 ● CLIフレームワーク「Cobra」 ○ ルートを作ったらその配下にサブコマンドを作るという実装 ● DIコンテナ「golobby/container」 リポジトリ:https://github.com/Azure/azure-dev

Slide 26

Slide 26 text

アップデート 〜1.2.0から最新まで〜 26

Slide 27

Slide 27 text

直近のコミット履歴 27 ● https://github.com/Azure/azure-dev/graphs/commit-activity このスライドを作成している間も盛んにコミットされている!!

Slide 28

Slide 28 text

私がJAZUGでazdを紹介した日(1.2.0)→直近まで(1.4.2) 28 1.4.2が最新バージョンです。 ※なお、ローカルインストールの場合に限る。拡張機能はバージョンが違う

Slide 29

Slide 29 text

v1.2.0 29

Slide 30

Slide 30 text

Add --preview to azd provision to get the changes. 30 v1.2.0 azd provisionに変更点を表示する--previewが追加されました。 terraformでいうところのterraform planのようなものです。

Slide 31

Slide 31 text

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が実行できます。

Slide 32

Slide 32 text

Adds optional support for text templates in AKS k8s manifests. 32 Azure k8s Serviceに利用するマニュフェストテンプレートに対応しました。 v1.2.0

Slide 33

Slide 33 text

v1.3.0 33

Slide 34

Slide 34 text

Adds support for custom template sources. 34 v1.3.0 カスタムされたazdテンプレートソースに対応しました。 デフォルトではawesome-azdにあるTemplate Libraryからの取得ですが この機能追加によって 自分で作成したテンプレートを自分の環境に配置し、限定された環境に対してazdテンプ レートを配信できます。 awesome-azd(参考):https://azure.github.io/awesome-azd/

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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の開発者ブログに あります!

Slide 37

Slide 37 text

Support for Cloud Native Buildpacks (alpha feature) 37 v1.3.0 ソースコードからDockerイメージを作成できるCloud Native Buildpacksに対応しました。 現在はアルファ版のため、実験的な実装になります。

Slide 38

Slide 38 text

v1.3.1 38

Slide 39

Slide 39 text

azd package support for user specified output paths 39 v1.3.1 azd package の機能追加 azd packageによる出力をユーザが指定したパスに設定できる機能

Slide 40

Slide 40 text

v1.4.0 40

Slide 41

Slide 41 text

Adds support for provision state to the bicep provider. 41 v1.4.0 Bicepにおいてプロビジョン(環境構築)の状態をスキップして「azd provision」の実行ができ るようになった。

Slide 42

Slide 42 text

Support for remote environments. 42 v1.4.0 Azure Blob Storage などを活用して環境変数をリモートで管理できます。 ストレージに配置するのはazdが生成する .envやconfig.jsonです。

Slide 43

Slide 43 text

v1.4.2(最新) 43

Slide 44

Slide 44 text

Feature Clickable Template Links in Terminal 44 v1.4.2 azd template listというテンプレートの一覧を表示するコマンドの機能追加 出力されたテンプレート一覧にあるリンクをターミナル上でクリックできるようになりました。 ※MacおよびAzure Powershellなど特定のターミナルではリンクをクリックできない

Slide 45

Slide 45 text

補足:Feature Clickable Template Links in Terminal 45 こんな感じで リンク部分が青くなります。

Slide 46

Slide 46 text

Feature Display the Subscription Name and ID 46 v1.4.2 azd provision コマンドの実行において サブスクリプション名とIDを表示する機能の追加です。

Slide 47

Slide 47 text

まとめ ● azdというすごいデプロイツールがあるよ! ● azdを使うと簡単にAzureのデプロイが体感できるよ! ● インストール方法や利用できる環境をみたよ! ● 仕様を把握する上で前提知識を3つ振り返ったよ! ● 最近のアップデートをトレースしたよ! 47

Slide 48

Slide 48 text

Tips 48

Slide 49

Slide 49 text

49 ● https://zenn.dev/ymd65536/articles/azd_getting_started 実はこんなこともできます!デェーン

Slide 50

Slide 50 text

そんなこともあろうかと準備しております!デェーン 50 ● https://zenn.dev/ymd65536/articles/githubcli_getting_started