Open Source とAzure CLI と、
便利な仲間たち
.NET Conf 2018 Tokyo, Japan
https://csugjp.connpass.com/event/100049/
Self Introduction
自己紹介
大平かづみ / Kazumi OHIRA
@dz_ 主にサーバー
サイドエンジニア
Infrastructure as
Code, DevOps
クラウド大好き!
Azure
Prologue
はじめに
Microsoft Openness
https://www.youtube.com/watch?v=CHMsbM-jtzc
Linux on Windows
Windows Subsystem for Linux
• Ubuntu
• openSUSE
• SUSE Linux
• Debian
• Kali
Windows Subsystem for Linux
• WLinux
• WSLに特化したLinuxディスト
リビューション
Linux on Azure
Azure上のLinuxインスタンス数が 50% に
https://twitter.com/msdevUK/status/953575127274414080?s=20 https://twitter.com/steveldixon/status/1049587216341757952?s=20
Microsoft helps Linux
OINに参加し、Linux関連特許を提供
• Open Invention Network
• Linux関連の特許を、訴訟リスクなしに利用できるよう運営する団体
• 同団体の加盟者は、同団体が管理するLinux関連の特許を安心
して利用でき、Linuxやオープンソースの開発に貢献できる
https://azure.microsoft.com/en-us/blog/microsoft-joins-open-invention-network-to-help-protect-linux-and-open-source/
Microsoft loves OSS
Microsoft が GitHub を買収
https://news.microsoft.com/2018/06/04/microsoft-to-acquire-github-for-7-5-billion/
Azure 関連のリポジトリは 1000 近く
https://github.com/Azure
Hacktoberfest #5 に協賛
https://hacktoberfest.digitalocean.com/ https://open.microsoft.com/2018/09/18/hacktoberfest-2018-
microsoft/
Microsoft 版 Hacktorberfest
https://open.microsoft.com/2018/09/30/join-hacktoberfest-2018-celebration-microsoft/
Let’s try Open Source!
Let’s try Open Source
with Azure!
Azure CLI
普段は Visual Studio からサクサクッと、
ポータルからサクサクッと、
デプロイされてるかもしれませんが…?
ここはひとつ、CLIでも遊んでみましょう!
Azure CLI のいいところ
• 手順書を作りやすい
• GUIのポータルだと、操作の説明やキャプチャなど大変
• 情報を取得しやすい
• VMサイズやロケーションなどの情報をテキストベースで得られる
• JSON、TSV出力で、コードやexcelへの貼付も容易
選べる Azure CLI の利用環境
• Azure ポータル内
• Cloud Shell
• 公式ドキュメント内の埋め込みシェル
• ローカルマシンにインストール
• Windows/Mac/Linux
• Visual Studio Code と一緒に使うとより便利♪
Azureポータル
https://portal.azure.com/
Cloud Shell
https://shell.azure.com/
公式ドキュメント内の埋め込みシェル
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs
ローカルマシンへインストール
Windows版 Ubuntu版(WSLにインストール)
Visual Studio Code のシェルでももちろん
azコマンドの基本
• az または az help でサブコマンド一覧
• az <sub commands> --help でサブコマンドのヘルプ
• よく使うオプション
• --resource-group, -g
• --location, -l
• --name, -n
• 便利オプション
• --output, -o
• --query
サブコマンド一覧
az
ヘルプ
az webapp create --help
よく使うオプション
よく使うオプションは同じパラメータであ
ることも多いので、変数で設定して使いま
わすと便利です。
az group create –-name ${RESOURCE_GROUP} –location ${LOCATION}
便利オプション --output, -o
--output table
--output tsv
便利オプション --query
--query ‘[?numberOfCores >= `16`]’
output オプションと組み合わせるとさらに便利!
--query の記法は JMESPath
http://jmespath.org/ http://jmespath.org/tutorial.html
--query サンプル集
https://qiita.com/dz_/items/dda1a8f6198667406aeb
コピーコマンドと組みあわせると便利!
id だけ抽出して、
ダブルクォートを
外し、クリップ
ボードにコピー
WSLの場合、 clip.exe にパイプで文字列を渡すと、クリッ
プボードにコピーしてくれる
azコマンドで迷ったら
• az find -q <keyword>
• az interactive
az find -q <keyword>
• コマンドを全く思い出せない
ときや、この機能あるのか
なってときは、 az find -q で
検索するのがおすすめ!
az interactive
サービスプリンシパルとロールを活用
• 権限をコントロールするもの
• ユーザー
• ロールベースのアクセス制御(Role Based Access Control, RBAC)
• https://docs.microsoft.com/ja-jp/azure/role-based-access-control/overview
• マネージドID(旧Managed Service Identity (MSI))
• 少し前に、リソースに対しても割り当てられるようになった
• https://docs.microsoft.com/en-us/azure/active-directory/managed-
identities-azure-resources/overview
• az identify
カスタムロールのサービスプリンシパル
1. カスタムロールを作成する
1. アクションの許可/不許可
2. ロールを指定して、サービ
スプリンシパルを作成する
https://qiita.com/dz_/items/fee9ec42ec9051d1a9b9
Other resource’s Tips
その他
その他のCLI
• Azure Functions Core Tools
• func
• Azure Functions の開発ツール
• Bot Builder tools
• Bot Framework 開発ツール(Node.js)
• AzCopy
• azcopy
• Storage Account のファイルを移動するツール
• .NET Core 製から、Go言語製に更新されたそう(Preview)
SDKと REST API
• 各種言語向けのSDK
• https://docs.microsoft.com/ja-jp/azure/#pivot=sdkstools
• REST API のラッパーなので、パラメータなど迷ったら REST API の
ドキュメントを参照するとヒントがあるかも
• REST API
• Azure REST API Reference
• https://docs.microsoft.com/en-us/rest/api/azure/
Azure Resource Manager (ARM)
• ARMテンプレート
• JSON 形式のリソース定義ファイル
• https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-
group-overview
• パラメータを分離して、デプロイ時に指定できる
• Azure Quickstart Template のベースになる
• https://azure.microsoft.com/en-us/resources/templates/
• REST API の定義と対になる
• ポータルから、既存のリソースグループのテンプレートを閲覧、エクスポートで
きるが、APIバージョンが古いことがあるので、一度目を通すと吉
Microsoft Learn
Microsoft Learn
Have fun!

Open Source と Azure CLI と、便利な仲間たち

Editor's Notes