クイック スタート:Ruby を使用して初めての Resource Graph クエリを実行する
Azure Resource Graph を使用する最初の手順では、Ruby に必要な gem がインストールされていることを確認します。 このクイックスタートでは、gem を Ruby のインストールに追加するプロセスについて説明します。
このプロセスを完了すると、gem を Ruby のインストールに追加し、初めての Resource Graph クエリを実行できます。
前提条件
- Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- clientId と clientSecret を含む Azure サービス プリンシパル。
Azure Cloud Shell を使用する
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには:
オプション | 例とリンク |
---|---|
コード ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。 | ![]() |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | ![]() |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 | ![]() |
Azure Cloud Shell でこの記事のコードを実行するには:
Cloud Shell を開始します。
[コピー] ボタンを選択して、コード ブロックをコードにコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードを実行します。
Resource Graph プロジェクトを作成する
Ruby で Azure Resource Graph のクエリを実行できるようにするには、gem を Gemfile
に追加する必要があります。 この gem は、Ruby を使用できる場所であればどこでも動作します (Azure Cloud Shell、Windows 10 上の bash、ローカル インストールなど)。
最新の Ruby がインストールされていることを確認します (2.7.1 以降)。 まだインストールされていない場合は、Ruby-Lang.org からダウンロードします。
選択した Ruby 環境の新しいプロジェクト フォルダー内で、バンドルを初期化します。
# Initialize a bundle to create a new Gemfile bundle init
Azure Resource Graph に必要な gem を使用して
Gemfile
を更新します。 更新されたファイルは、次の例のようになります。# frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } # gem "rails" gem 'azure_mgmt_resourcegraph', '~> 0.17.2'
プロジェクト フォルダーから
bundle install
を実行します。bundle list
と共に gem がインストールされたことを確認します。同じプロジェクト フォルダーで、次のコードを使用して
argQuery.rb
を作成し、更新したファイルを保存します。#!/usr/bin/env ruby require 'azure_mgmt_resourcegraph' ARG = Azure::ResourceGraph::Profiles::Latest::Mgmt # Get arguments and set options options = { tenant_id: ARGV[0], client_id: ARGV[1], client_secret: ARGV[2], subscription_id: ARGV[3] } # Create Resource Graph client from options argClient = ARG::Client.new(options) # Create Resource Graph QueryRequest for subscription with query query_request = ARGModels::QueryRequest.new.tap do |qr| qr.subscriptions = [ARGV[3]] qr.query = ARGV[4] end # Get the resources from Resource Graph response = argClient.resources(query_request) # Convert data to JSON and output puts response.data.to_json
最初の Resource Graph クエリを実行する
Ruby スクリプトを保存し、使用する準備ができたら、単純な Resource Graph クエリを試します。 このクエリでは、各リソースの名前とリソースの種類を使用して、最初の 5 つの Azure リソースが返されます。
argQuery
に対するそれぞれの呼び出しには、自分独自の値で置き換える必要のある変数があります。
{tenantId}
- 実際のテナント ID に置き換えます{clientId}
- ご自分のサービス プリンシパルのクライアント ID に置き換えます{clientSecret}
- ご自分のサービス プリンシパルのクライアント シークレットに置き換えます{subscriptionId}
- サブスクリプション ID で置き換えます
Gemfile
およびargClient.rb
ファイルを作成したプロジェクト フォルダーにディレクトリを変更します。gem と
resources
メソッドを使用して、初めての Azure Resource Graph クエリを実行します。ruby argQuery.rb "{tenantId}" "{clientId}" "{clientSecret}" "{subscriptionId}" "Resources | project name, type | limit 5"
Note
このクエリは
order by
などの並べ替え修飾子を示しませんので、このクエリを複数回実行すると要求あたり異なる一連のリソースを中断する可能性があります。最後のパラメーターを
argQuery.rb
に変更し、Name プロパティで並べ替える (order by
) ようにクエリを変更します。ruby argQuery.rb "{tenantId}" "{clientId}" "{clientSecret}" "{subscriptionId}" "Resources | project name, type | limit 5 | order by name asc"
Note
最初のクエリと同様に、このクエリを複数回実行すると要求あたり異なる一連のリソースを中断する可能性があります。 クエリ コマンドの順序が重要です。 この例では、
limit
の後にorder by
がきます。 このコマンドの順序によって、まずクエリ結果が制限され、次にその結果が並べ替えられます。最後のパラメーターを
argQuery.rb
に変更し、まず Name プロパティで並べ替え (order by
)、次に上位 5 件の結果に制限 (limit
) するようにクエリを変更します。ruby argQuery.rb "{tenantId}" "{clientId}" "{clientSecret}" "{subscriptionId}" "Resources | project name, type | order by name asc | limit 5"
最後のクエリを複数回実行した場合、環境内で何も変更がないと仮定すると、返される結果は変わらず、Name プロパティで並べ替えられますが、引き続き上位 5 件の結果に制限されます。
リソースをクリーンアップする
インストールした gem を、ご使用の Ruby 環境から削除する場合は、次のコマンドを使用します。
# Remove the installed gems from the Ruby environment
gem uninstall azure_mgmt_resourcegraph
Note
gem azure_mgmt_resourcegraph
には、ms_rest
や ms_rest_azure
などの依存関係があり、環境に応じてインストールされている場合もあります。 これらの gem も不要になった場合はアンインストールできます。
次のステップ
このクイックスタートでは、ご使用の Ruby 環境に Resource Graph gem を追加し、初めてのクエリを実行しました。 Resource Graph 言語の詳細については、クエリ言語の詳細ページに進んでください。