Microsoft Learnを用いたMicrosoft Azure Administrator(AZ-104)の試験内容をまとめる投稿です。
この投稿ではMicrosoft Learnで学ぶ内容をできるだけ簡潔にまとめております。
Azureの勉強を一から始め、AZ-900取得後の資格としてAZ-104取得を目指している方の参考になれば幸いです。
※AZ-900の内容は本投稿では省略しております。再度復習したい方は下記をご参照ください。
Azure Fundamentals(AZ-900):試験合格に向けた学習内容のまとめ
今回の学習内容
◆「モジュールと出力(Bicep)」
◇対応するMicrosoft Learn ラーニングパス
AZ-104:Azure 管理者向けの前提条件
◇まとめとリソース
Azure Resource Manager テンプレートを使用してリソースを構成する
◇対応するモジュール
モジュールを使用して関連リソースをグループ化する
※前回の投稿は下記から確認できます。
Azure Administrator(AZ-104):Azure管理者向けの前提条件「パラメーターと変数を用いた式(Bicep)」
モジュールと出力(Bicep)
モジュール
・個別のBicepファイル(モジュール)を作成し、メインのBicepテンプレートから参照可能
⇒コードの可読性の向上や再利用がしやすくなる
・メインテンプレートからモジュールにパラメーター値を渡すことが可能
◆モジュールのコード例(モジュールに関わる部分以外は省略)
・app Serviceアプリを作成するモジュールをメインテンプレートから参照したい場合
param mainlocation string = 'westus3’
module myModule 'modules/mymodule.bicep' = {
name: 'MyModule'
params: {
location1: mainlocation
}
}
※コードの意味
・module
別のBicepファイルをモジュールとして使用することをBicepに指示
-myModule:モジュールのシンボリック名(他の部分で使用するときに参照可能)
-modules/mymodule.bicep:モジュールファイルへのパス
今回の場合は「modules」フォルダの「mymodule.bicep」をモジュールとして使用
・name
モジュールごとのデプロイ内容を管理するための名前
・params
モジュール内のパラメーターをメインテンプレートで指定
今回の場合はモジュール内の「location1」パラメーターを「westus3」として指定
param location1 string
resource appServiceApp 'Microsoft.Web/sites@2021-03-01' = {
name: appServiceAppName
location: location1
~省略~
}
※コードの意味
・param
メインテンプレートから必要なパラメーターを受け取るために定義
・location: location1
メインテンプレートで指定した値が使用される
今回の場合は「appServiceAppName」のリージョンが「westus3」になる
◆モジュール設計の重要な原則
・明確な目的
-用途や関連するリソースごとにモジュールで分けて定義可能
例)アプリケーションの監視で使用するすべてのリソースを含むモジュール
例)ネットワークに関連するリソースをすべて含むモジュール
・すべてのリソースを独自のモジュールに配置しない
-リソースごとに個別のモジュールを作成しない
・意味のある明確なパラメーターと出力が必要
-パラメータと出力はメインテンプレートとモジュールでやり取りや処理が必要かどうかの検討が必要
・可能な限り自己完結型とする
-モジュール内で完結する変数はメインテンプレートで定義せずモジュール内で定義する
・シークレットを出力しない
-接続文字列やキーなどのシークレット値をモジュールから出力させない
出力
・デプロイされたリソースから値を返す必要がある場合に使用
例)仮想マシンをデプロイ後SSH接続のためのパブリックIPアドレスを取得したい場合
例)あるモジュールでデプロイしたリソースの情報をメインテンプレートのパラメーターにしたい場合
・出力には固定値ではなくプロパティを指定することを推奨
◆出力のコード例
・デプロイした仮想マシンにおけるパブリックIPアドレスのFQDNを取得したい場合
output ipFqdn string = publicIPAddress.properties.dnsSettings.fqdn
※コードの意味
・output 出力名
データ型
= 出力値
出力を定義していることをBicepに指示
-publicIPAddress:仮想マシンにおけるパブリックIPアドレスリソースのシンボリック名
-publicIPAddress.properties.dnsSettings.fqdn:「publicIPAddress」の「dnsSettings」プロパティから「fqdn」を取得
モジュールからの出力
・モジュールでデプロイしたリソースの情報をメインテンプレートに渡すことが可能
◆モジュールから値を出力するコード例(関係のないコードは省略)
・モジュールで作成したapp Serviceアプリのホスト名(URL)をメインテンプレートから出力したい場合
resource appServiceApp 'Microsoft.Web/sites@2021-03-01' = {
~省略~
}
output appServiceAppHostName string = appServiceApp.properties.defaultHostName
※コードの意味
・appServiceApp.properties.defaultHostName
「appServiceApp」リソースの「defaultHostName」プロパティを取得
-defaultHostName:アプリのデフォルトのホスト名(URL)
module appService 'modules/appService.bicep' = {
~省略~
}
output OutputHostName string = appService.outputs.appServiceAppHostName
※コードの意味
・appService.outputs.appServiceAppHostName
「appService」モジュールから出力名「appServiceAppHostName」の出力値を取得
次の学習内容
◆PowerShellのコマンドレットとモジュール
学習内容をまとめたページの一覧