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
DeployToAzureポチからの卒業 / LT_DeployToAzure
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
sou
January 15, 2022
Technology
460
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DeployToAzureポチからの卒業 / LT_DeployToAzure
sou
January 15, 2022
More Decks by sou
See All by sou
Azure におけるコンテナ基盤選定について / azure-container-platform-selection
08thse
0
560
AKS コントロールプレーン監視のためのメトリクス / aks-control-plane-metric-preview
08thse
0
270
Gatekeeper と Azure Policy (rev.1) / gatekeeper-azpol
08thse
0
190
読み物からのエンジニア的な学び / Learning from Reading
08thse
0
190
Azure Container Apps 気になるアップデート (2023/5) / ACA_Update_202305
08thse
0
300
Azure Container Apps 触ってみる / LT_AzureContainerApps
08thse
0
690
Deeperという人材カテゴリに共感した話
08thse
0
190
LT_Documentation
08thse
0
86
Other Decks in Technology
See All in Technology
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
1
520
はじめてのWDM
miyukichi_ospf
1
120
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
2.9k
Zoom2Youtube.Claude
kawaguti
PRO
2
460
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
4.9k
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
390
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
3
3k
AI駆動開発におけるQAエンジニアの役割事例 〜AI駆動開発の現場から〜
kobayashiyorimitsu
0
400
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
2.4k
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
170
cccccc
moznion
0
1.8k
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.1k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
For a Future-Friendly Web
brad_frost
183
10k
How to train your dragon (web standard)
notwaldorf
97
6.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Leo the Paperboy
mayatellez
8
1.9k
Raft: Consensus for Rubyists
vanstee
141
7.6k
The Pragmatic Product Professional
lauravandoore
37
7.4k
WCS-LA-2024
lcolladotor
0
670
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Transcript
Deploy to Azure ポチからの卒業 sou (@08thse)
2
3
4 Deploy to Azure の動作 ARM Template (Azure Resource Manager)
5 ARM Template の中身 { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters":
{ "virtualMachineSize": { "type": "string", "defaultValue": "Standard_DS1_v2", "metadata": { "description": "Virtual machine size (has to be at least the size of Standard_A3 to support 2 NICs)" } }, "adminUsername": { "type": "string", "metadata": { "description": "Default Admin username" } }, "adminPassword": { "type": "securestring", "metadata": { "description": "Default Admin password" } }, .. .. ..
6 ARM Template の構造 { "$schema": "https://schema.management.azure.com/...", "contentVersion": "1.0.0.0", "parameters":
{ ... }, “variables": { ... }, “resources": { ... }, ... }
7 ARM Template の構造 (1/3) { "$schema": "https://schema.management.azure.com/...", "contentVersion": "1.0.0.0",
"parameters": { ... }, “variables": { ... }, “resources": { ... }, ... } parameter (引数) • テンプレートのデプロイ時に値を入力させる
8 parameter (引数) "parameters": { "virtualMachineSize": { "type": "string", "defaultValue":
"Standard_DS1_v2", "metadata": { "description": "Virtual machine size" } }, "adminUsername": { "type": "string", "metadata": { "description": "Default Admin username" } }, "adminPassword": { "type": "securestring", "metadata": { "description": "Default Admin password" } }, ... }, https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/templates/template-parameters
9 ARM Template の構造 (2/3) { "$schema": "https://schema.management.azure.com/...", "contentVersion": "1.0.0.0",
"parameters": { ... }, “variables": { ... }, “resources": { ... }, ... } parameter (引数) • テンプレートのデプロイ時に値を入力させる variable (変数) • テンプレート中で使う変数を定義 • 関数等を使って文字列構築もOK
10 variable (変数) "variables": { "nic1": "nic-1", "nic2": "nic-2", "virtualNetworkName":
"virtualNetwork", "subnet1Name": "subnet-1", "subnet2Name": "subnet-2", "publicIPAddressName": "publicIp", "networkSecurityGroupName": "NSG", "networkSecurityGroupName2": "[concat(variables('subnet2Name'), '-nsg')]" "diagStorageAccountName": "[concat('diags',uniqueString(resourceGroup().id))]", }, https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/templates/template-variables 定数的に定義 関数を使って文字列作成 適当な文字列も作れます もちろん定義済み変数も利用可能
11 ARM Template の構造 (3/3) { "$schema": "https://schema.management.azure.com/...", "contentVersion": "1.0.0.0",
"parameters": { ... }, “variables": { ... }, “resources": { ... }, ... } resource (Azureリソース定義) • 各Azure Resource毎に構造を定義
12 一言でいうとAzureリソース毎の定義をコードで記載しているだけ resource (Azureリソース定義) { "type": "Microsoft.Storage/storageAccounts", "name": "[variables('diagStorageAccountName')]", "apiVersion":
"2019-06-01", "location": "[parameters('location')]", "sku": { "name": "[parameters('storageAccountType')]" }, "kind": "StorageV2" },
13 一言でいうとAzureリソース毎の定義をコードで記載しているだけ サービスによって書き方がまちまちなので・・・ ▪参考元 (Azure QuickStart Templates) https://azure.microsoft.com/ja-jp/resources/templates/ https://github.com/Azure/azure-quickstart-templates ▪リファレンス
https://docs.microsoft.com/en-us/azure/templates/ 自動テストが失敗しているものは動かない可 能性が高いので注意 resource (Azureリソース定義) 2021/2/4現在、985個のテン プレート
14 ARM Template の構造 { "$schema": "https://schema.management.azure.com/...", "contentVersion": "1.0.0.0", "parameters":
{ ... }, “variables": { ... }, “resources": { ... }, ... } parameter (引数) • テンプレートのデプロイ時に値を入力させる variable (変数) • テンプレート中で使う変数を定義 • 関数等を使って文字列構築もOK resource (変数) • 各Azure Resource毎に構造を定義 その他 • 実施終了時のアウトプット文字列なども設定可能
15 あとは QuickStart Template を参考に書いてみるだけ!