添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

使用 Azure Resource Graph 的第一步是确保为 Ruby 安装了所需的 gem。 本快速入门将指导你完成将该 gem 添加到 Ruby 安装的过程。

在此过程结束时,你已将该 gem 添加到 Ruby 安装中,并将运行你的第一个 Resource Graph 查询。

  • 如果没有 Azure 订阅,请在开始之前创建一个 免费 帐户。
  • Azure 服务主体,包括 clientId 和 clientSecret 。
  • Azure Cloud Shell

    Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。

    若要启动 Azure 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 或本地安装的 bash。

  • 请确保安装最新的 Ruby(至少为 2.7.1)。 如果尚未安装,请在 Ruby-Lang.org 下载。

  • 在你选择的 Ruby 环境中,在新的项目文件夹中初始化一个捆绑包:

    # Initialize a bundle to create a new Gemfile
    bundle init
    
  • 更新 Gemfile 和 Azure Resource Graph 所需的 gem。 更新的文件应类似于以下示例:

    # 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。 确认 gem 是否已通过 bundle list 安装。

  • 在同一项目文件夹中,使用以下代码创建 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]
    # 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 查询。 该查询返回前五个 Azure 资源,以及每个资源的名称和资源类型 。

    在对 argQuery 的每次调用中,都包含替换为自己的值时需要使用的变量:

  • {tenantId} - 替换为租户 ID
  • {clientId} -替换为服务主体的客户端 ID
  • {clientSecret} -替换为服务主体的客户端机密
  • {subscriptionId} - 替换为订阅 ID
  • 将目录更改为你在其中创建 GemfileargClient.rb 文件的项目文件夹。

  • 使用 gem 和 resources 方法运行首个 Azure Resource Graph 查询:

    ruby argQuery.rb "{tenantId}" "{clientId}" "{clientSecret}" "{subscriptionId}" "Resources | project name, type | limit 5"
    

    由于此查询示例未提供排序修饰符(例如 order by),因此多次运行此查询可能会为每个请求生成一组不同的资源。

  • 将最后一个参数更改为 argQuery.rb,并将查询更改为按 Name 属性应用 order by

    ruby argQuery.rb "{tenantId}" "{clientId}" "{clientSecret}" "{subscriptionId}" "Resources | project name, type | limit 5 | order by name asc"
    

    与第一个查询一样,多次运行此查询可能会为每个请求生成一组不同的资源。 查询命令的顺序非常重要。 在本例中,order by 位于 limit 之后。 命令按此顺序执行,首先会限制查询结果,然后对它们进行排序。

  • 将最后一个参数更改为 argQuery.rb,并将查询更改为先按 Name 属性应用 order by,然后对前五个结果应用 limit

    ruby argQuery.rb "{tenantId}" "{clientId}" "{clientSecret}" "{subscriptionId}" "Resources | project name, type | order by name asc | limit 5"
    

    假设环境中没有任何变化,则多次运行最后一个查询时,返回的结果将是一致的且按 Name 属性排序,但仍限制为前五个结果。

    如果希望从 Ruby 环境中删除已安装的 gem,可使用以下命令执行此操作:

    # Remove the installed gems from the Ruby environment
    gem uninstall azure_mgmt_resourcegraph
    

    Gem azure_mgmt_resourcegraph 具有 ms_restms_rest_azure 等依赖项,根据你的环境,这些依赖项也可能已安装。 如果不再需要这些 gem,还可以将它们卸载。

    本快速入门介绍了如何将 Resource Graph gem 添加到 Ruby 环境并运行第一个查询。 若要详细了解 Resource Graph 语言,请继续阅读查询语言详细信息页。

    获取有关查询语言的详细信息

  •