Az API-verziók profiljainak használata a Ruby használatával Azure Stack hub-banUse API version profiles with Ruby in Azure Stack Hub

Ruby és API-verziók profiljaiRuby and API version profiles

Az Azure Stack hub Resource Managerhez készült Ruby SDK olyan eszközöket biztosít, amelyek segítenek az infrastruktúra kiépítésében és kezelésében.The Ruby SDK for the Azure Stack Hub Resource Manager provides tools to help you build and manage your infrastructure. Az SDK erőforrás-szolgáltatói közé tartozik a Ruby nyelve: számítási, virtuális hálózatok és tárterület.Resource providers in the SDK include Compute, Virtual Networks, and Storage, with the Ruby language. A Ruby SDK-ban található API-profilok lehetővé teszik a hibrid felhőalapú fejlesztést azáltal, hogy a Azure Stack hub globális Azure-erőforrásai és-erőforrásai közötti váltást segítik.API profiles in the Ruby SDK enable hybrid cloud development by helping you switch between global Azure resources and resources on Azure Stack Hub.

Az API-profilok erőforrás-szolgáltatók és szolgáltatási verziók kombinációja.An API profile is a combination of resource providers and service versions. Az API-profilokkal kombinálhatja a különböző erőforrástípusok használatát.You can use an API profile to combine different resource types.

  • Az összes szolgáltatás legújabb verziójának használatához használja az Azure SDK összegző gem legújabb profilját.To use the latest versions of all the services, use the Latest profile of the Azure SDK rollup gem.
  • Az Azure Stack hub szolgáltatással kompatibilis szolgáltatások használatához használja az Azure SDK összegző gyöngyszemének V2019_03_01_Hybrid vagy V2018_03_01 profilját.To use the services compatible with the Azure Stack Hub, use the V2019_03_01_Hybrid or V2018_03_01 profile of the Azure SDK rollup gem.
  • A szolgáltatás legújabb API-verziójának használatához használja az adott gem legújabb profilját.To use the latest api-version of a service, use the Latest profile of the specific gem. Ha például csak a számítási szolgáltatás legújabb API-verzióját szeretné használni, használja a számítási gem legújabb profilját.For example, to use the latest api-version of compute service alone, use the Latest profile of the Compute gem.
  • Ha egy szolgáltatáshoz adott API-verziót kíván használni, használja a gem-ban meghatározott API-verziókat.To use a specific api-version for a service, use the specific API versions defined inside the gem.

Megjegyzés

Az alkalmazás összes beállítását egyesítheti.You can combine all of the options in the same app.

Az Azure Ruby SDK telepítéseInstall the Azure Ruby SDK

  • A gittelepítéséhez kövesse a hivatalos utasításokat.Follow the official instructions to install Git.

  • A Rubytelepítéséhez kövesse a hivatalos utasításokat.Follow the official instructions to install Ruby.

    • A telepítésekor válassza a Ruby to PATH változó hozzáadása lehetőséget.When installing, choose Add Ruby to PATH variable.

    • Ha a rendszer a Ruby telepítésekor kéri, telepítse a fejlesztői csomagot.When prompted during Ruby installation, install the development kit.

    • Ezután telepítse a köteget a következő parancs használatával:Next, install the bundler using the following command:

      Gem install bundler
      
  • Ha nem érhető el, hozzon létre egy előfizetést, és mentse az előfizetés-azonosítót későbbi használatra.If not available, create a subscription and save the subscription ID to be used later. Az előfizetés létrehozásához szükséges utasítások a Azure stack hub-ban található előfizetések létrehozása című cikkben találhatók.Instructions to create a subscription are in the Create subscriptions to offers in Azure Stack Hub article.

  • Hozzon létre egy egyszerű szolgáltatásnevet, és mentse az azonosítót és a titkos kulcsot.Create a service principal and save its ID and secret. Az Azure Stack hub szolgáltatáshoz tartozó egyszerű szolgáltatásnév létrehozásához az alkalmazás identitás használata az erőforrások eléréséhez című cikk nyújt útmutatást.Instructions to create a service principal for Azure Stack Hub are in the Use an app identity to access resources article.

  • Győződjön meg arról, hogy a szolgáltatásnév rendelkezik az előfizetéshez hozzárendelt közreműködő/tulajdonos szerepkörrel.Make sure your service principal has the contributor/owner role assigned on your subscription. A szerepkör egy egyszerű szolgáltatáshoz való hozzárendelésével kapcsolatos utasítások az alkalmazás identitás használata az erőforrások eléréséhez című cikkben olvashatók.Instructions on how to assign a role to a service principal are in the Use an app identity to access resources article.

A RubyGem-csomagok telepítéseInstall the RubyGem packages

Az Azure RubyGem-csomagokat közvetlenül is telepítheti.You can install the Azure RubyGem packages directly.

gem install azure_mgmt_compute
gem install azure_mgmt_storage
gem install azure_mgmt_resources
gem install azure_mgmt_network

Vagy használhatja őket a Gemfile.Or, use them in your Gemfile.

gem 'azure_mgmt_storage'
gem 'azure_mgmt_compute'
gem 'azure_mgmt_resources'
gem 'azure_mgmt_network'

A Azure Resource Manager Ruby SDK előzetes verzióban érhető el, és valószínűleg a közelgő kiadásokban az interfészek változásait fogja megszakítani.The Azure Resource Manager Ruby SDK is in preview and will likely have breaking interface changes in upcoming releases. Az alverzióban megnövekedett szám a megszakított változásokat jelezheti.An increased number in the minor version may indicate breaking changes.

A azure_sdk gem használataUse the azure_sdk gem

A azure_sdk gem a Ruby SDK által támogatott drágakövek összesítése.The azure_sdk gem is a rollup of all the supported gems in the Ruby SDK. Ez a gem egy legújabb profilt tartalmaz, amely az összes szolgáltatás legújabb verzióját támogatja.This gem consists of a Latest profile, which supports the latest version of all services. Az Azure Stack hub-hoz készült, V2017_03_09 és V2019_03_01_Hybrid verziószámú profilokat tartalmaz.It includes versioned profiles V2017_03_09 and V2019_03_01_Hybrid, which are built for Azure Stack Hub.

A következő paranccsal telepítheti a azure_sdk összesítő gem-t:You can install the azure_sdk rollup gem with the following command:

gem install 'azure_sdk'

ElőfeltételekPrerequisites

Ha a Ruby Azure SDK-t Azure Stack hubhoz szeretné használni, meg kell adnia a következő értékeket, majd az értékeket környezeti változók alapján kell beállítania.To use the Ruby Azure SDK with Azure Stack Hub, you must supply the following values, and then set the values with environment variables. A környezeti változók megadásához tekintse meg az adott operációs rendszer táblázatát követő utasításokat.To set the environmental variables, see the instructions following the table for your specific operating system.

ÉrtékValue Környezeti változókEnvironment variables LeírásDescription
BérlőazonosítóTenant ID AZURE_TENANT_ID Az Azure Stack hub- bérlő azonosítója.Your Azure Stack Hub tenant ID.
Ügyfél-azonosítóClient ID AZURE_CLIENT_ID Az egyszerű szolgáltatásnév a jelen cikk előző szakaszában a szolgáltatásnév létrehozásakor mentve.The service principal app ID saved when the service principal was created in the previous section of this article.
Előfizetés azonosítójaSubscription ID AZURE_SUBSCRIPTION_ID Az előfizetés- azonosítóval érheti el az ajánlatokat az Azure stack hub szolgáltatásban.You use the subscription ID to access offers in Azure Stack Hub.
Titkos ügyfélkulcsClient Secret AZURE_CLIENT_SECRET A szolgáltatás egyszerű alkalmazásának titkos kulcsa a szolgáltatásnév létrehozásakor mentve.The service principal app secret saved when the service principal was created.
Resource Manager-végpontResource Manager Endpoint ARM_ENDPOINT Tekintse meg az Azure stack hub Resource Manager-végpontot.See The Azure Stack Hub Resource Manager endpoint.

Az Azure Stack hub Resource Manager-végpontThe Azure Stack Hub Resource Manager endpoint

A Microsoft Azure Resource Manager egy felügyeleti keretrendszer, amely lehetővé teszi a rendszergazdáknak az Azure-erőforrások üzembe helyezését, kezelését és figyelését.The Microsoft Azure Resource Manager is a management framework that allows admins to deploy, manage, and monitor Azure resources. A Azure Resource Manager a feladatokat nem külön, hanem csoportként, egyetlen művelet során is kezelhetik.Azure Resource Manager can handle these tasks as a group, rather than individually, in a single operation.

A metaadat-információkat a Resource Manager-végpontból kérheti le.You can get the metadata info from the Resource Manager endpoint. A végpont egy JSON-fájlt ad vissza, amely a kód futtatásához szükséges adatokkal rendelkezik.The endpoint returns a JSON file with the info required to run your code.

Megjegyzés

A Azure Stack Development Kit ResourceManagerUrl (ASDK) a következő: https://management.local.azurestack.external/ a ResourceManagerUrl az integrált rendszerekben:, ahol a a https://management.region.<fqdn>/ <fqdn> teljes tartománynév.The ResourceManagerUrl in the Azure Stack Development Kit (ASDK) is: https://management.local.azurestack.external/ The ResourceManagerUrl in integrated systems is: https://management.region.<fqdn>/, where <fqdn> is your fully qualified domain name.
A szükséges metaadatok beolvasása: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0To retrieve the metadata required: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0

Példa JSON-fájlra:Sample JSON file:

{
  "galleryEndpoint": "https://portal.local.azurestack.external:30015/",  
  "graphEndpoint": "https://graph.windows.net/",  
  "portal Endpoint": "https://portal.local.azurestack.external/",
  "authentication": {
    "loginEndpoint": "https://login.windows.net/",
    "audiences": ["https://management.<yourtenant>.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
  }
}

Környezeti változók beállításaSet environment variables

Microsoft WindowsMicrosoft Windows

A környezeti változók beállításához használja a következő formátumot egy Windows-parancssorban:To set the environment variables, use the following format in a Windows command prompt:

set AZURE_TENANT_ID=<YOUR_TENANT_ID>

macOS-, Linux-és UNIX-alapú rendszerekmacOS, Linux, and Unix-based systems

UNIX-alapú rendszerekben használja a következő parancsot:In Unix-based systems, use the following command:

export AZURE_TENANT_ID=<YOUR_TENANT_ID>

Meglévő API-profilokExisting API profiles

A Azure_sdk összesített gem a következő 3 profillal rendelkezik:The Azure_sdk rollup gem has the following 3 profiles:

  • V2019_03_01_Hybrid: az Azure stack hub-hoz készült profil.V2019_03_01_Hybrid: Profile built for Azure Stack Hub. Ezt a profilt a Azure Stack hub 1904-es vagy újabb verziójában elérhető szolgáltatások legújabb verzióihoz használhatja.Use this profile for all the latest versions of services available in Azure Stack Hub version 1904 or later.
  • V2017_03_09: az Azure stack hub-hoz készült profil.V2017_03_09: Profile built for Azure Stack Hub. Használja ezt a profilt, hogy a szolgáltatások a leghatékonyabban kompatibilisek legyenek Azure Stack hub 1808-es vagy korábbi verziójával.Use this profile for services to be most compatible with Azure Stack Hub version 1808 or earlier.
  • Legújabb: a profil az összes szolgáltatás legújabb verzióit tartalmazza.Latest: Profile consists of the latest versions of all services. Használja az összes szolgáltatás legújabb verzióit.Use the latest versions of all the services.

Azure Stack hub-és API-profilokkal kapcsolatos további információkért tekintse meg az API-profilok összefoglalásátismertető témakört.For more info on Azure Stack Hub and API profiles, see the Summary of API profiles.

Azure Ruby SDK API-profil használataAzure Ruby SDK API profile usage

A profil-ügyfél létrehozásához használja a következő kódot.Use the following code to instantiate a profile client. Ez a paraméter csak Azure Stack hub vagy más privát felhők esetén szükséges.This parameter is only required for Azure Stack Hub or other private clouds. A globális Azure-ban alapértelmezés szerint már szerepelnek ezek a beállítások.Global Azure already has these settings by default.

active_directory_settings = get_active_directory_settings(ENV['ARM_ENDPOINT'])

provider = MsRestAzure::ApplicationTokenProvider.new(
  ENV['AZURE_TENANT_ID'],
  ENV['AZURE_CLIENT_ID'],
  ENV['AZURE_CLIENT_SECRET'],
  active_directory_settings
)
credentials = MsRest::TokenCredentials.new(provider)
options = {
  credentials: credentials,
  subscription_id: subscription_id,
  active_directory_settings: active_directory_settings,
  base_url: ENV['ARM_ENDPOINT']
}

# Target profile built for Azure Stack Hub
client = Azure::Resources::Profiles::V2019_03_01_Hybrid::Mgmt::Client.new(options)

A profil ügyfelet az egyes erőforrás-szolgáltatók, például a számítási, tárolási és hálózati szolgáltatások eléréséhez használhatja:The profile client can be used to access individual resource providers, such as Compute, Storage, and Network:

# To access the operations associated with Compute
profile_client.compute.virtual_machines.get 'RESOURCE_GROUP_NAME', 'VIRTUAL_MACHINE_NAME'

# Option 1: To access the models associated with Compute
purchase_plan_obj = profile_client.compute.model_classes.purchase_plan.new

# Option 2: To access the models associated with Compute
# Notice Namespace: Azure::Profiles::<Profile Name>::<Service Name>::Mgmt::Models::<Model Name>
purchase_plan_obj = Azure::Profiles::V2019_03_01_Hybrid::Compute::Mgmt::Models::PurchasePlan.new

Azure Stack hub-környezet beállítási funkcióinak meghatározásaDefine Azure Stack Hub environment setting functions

Az egyszerű szolgáltatásnév Azure Stack hub-környezetbe való hitelesítéséhez adja meg a végpontokat a használatával get_active_directory_settings() .To authenticate the service principal to the Azure Stack Hub environment, define the endpoints using get_active_directory_settings(). Ez a metódus a korábban beállított ARM_Endpoint környezeti változót használja:This method uses the ARM_Endpoint environment variable that you set previously:

# Get Authentication endpoints using Arm Metadata Endpoints
def get_active_directory_settings(armEndpoint)
  settings = MsRestAzure::ActiveDirectoryServiceSettings.new
  response = Net::HTTP.get_response(URI("#{armEndpoint}/metadata/endpoints?api-version=1.0"))
  status_code = response.code
  response_content = response.body
  unless status_code == "200"
    error_model = JSON.load(response_content)
    fail MsRestAzure::AzureOperationError.new("Getting Azure Stack Hub Metadata Endpoints", response, error_model)
  end
  result = JSON.load(response_content)
  settings.authentication_endpoint = result['authentication']['loginEndpoint'] unless result['authentication']['loginEndpoint'].nil?
  settings.token_audience = result['authentication']['audiences'][0] unless result['authentication']['audiences'][0].nil?
  settings
end

API-profilokat használó mintákSamples using API profiles

A GitHubon a következő mintákat használhatja a Ruby és a Azure Stack hub API-profillal rendelkező megoldások létrehozásához:Use the following samples on GitHub as references for creating solutions with Ruby and Azure Stack Hub API profiles:

A Resource Manager és a csoportok mintájaSample Resource Manager and groups

A minta futtatásához győződjön meg arról, hogy a Ruby alkalmazást telepítette.To run the sample, ensure that you've installed Ruby. Ha Visual Studio Code-ot használ, töltse le a Ruby SDK bővítményt is.If you're using Visual Studio Code, download the Ruby SDK extension as well.

Megjegyzés

A minta tárháza a Hybrid-Resource-Manager-Ruby-Resources-and-groups.The repository for the sample is Hybrid-Resource-Manager-Ruby-Resources-And-Groups.

  1. A tárház klónozása:Clone the repository:

    git clone https://github.com/Azure-Samples/Hybrid-Resource-Manager-Ruby-Resources-And-Groups.git
    
  2. A függőségek telepítése a Bundle használatával:Install the dependencies using bundle:

    cd Hybrid-Resource-Manager-Ruby-Resources-And-Groups
    bundle install
    
  3. Hozzon létre egy Azure-beli szolgáltatásnevet a PowerShell használatával, és kérje le a szükséges értékeket.Create an Azure service principal using PowerShell and retrieve the values needed.

    Az egyszerű szolgáltatásnév létrehozásával kapcsolatos utasításokért lásd: Azure PowerShell használata egy egyszerű szolgáltatásnév létrehozásához tanúsítvánnyal.For instructions on creating a service principal, see Use Azure PowerShell to create a service principal with a certificate.

    A szükséges értékek a következők:Values needed are:

    • BérlőazonosítóTenant ID
    • Ügyfél-azonosítóClient ID
    • Titkos ügyfélkulcsClient secret
    • Előfizetés azonosítójaSubscription ID
    • Resource Manager-végpontResource Manager endpoint

    Állítsa be az alábbi környezeti változókat az Ön által létrehozott szolgáltatásnév alapján lekért információk alapján:Set the following environment variables using the information retrieved from the service principal you created:

    • export AZURE_TENANT_ID={your tenant ID}
    • export AZURE_CLIENT_ID={your client ID}
    • export AZURE_CLIENT_SECRET={your client secret}
    • export AZURE_SUBSCRIPTION_ID={your subscription ID}
    • export ARM_ENDPOINT={your Azure Stack Hub Resource Manager URL}

    Megjegyzés

    Windows rendszeren a helyett használja a t set export .On Windows, use set instead of export.

  4. Győződjön meg arról, hogy a Location változó a Azure Stack hub helyére van beállítva; például: LOCAL="local" .Ensure the location variable is set to your Azure Stack Hub location; for example, LOCAL="local".

  5. A megfelelő Active Directory-végpontok célzásához adja hozzá a következő kódrészletet, ha Azure Stack hubot vagy más privát felhőket használ:To target the correct active directory endpoints, add the following line of code if you're using Azure Stack Hub or other private clouds:

    active_directory_settings = get_active_directory_settings(ENV['ARM_ENDPOINT'])
    
  6. A options változóban adja hozzá a Active Directory beállításokat és az alap URL-címet, hogy működjön az Azure stack hub használatával:In the options variable, add the Active Directory settings and the base URL to work with Azure Stack Hub:

    options = {
    credentials: credentials,
    subscription_id: subscription_id,
    active_directory_settings: active_directory_settings,
    base_url: ENV['ARM_ENDPOINT']
    }
    
  7. Hozzon létre egy profil-ügyfelet, amely az Azure Stack hub-profilt célozza meg:Create a profile client that targets the Azure Stack Hub profile:

    client = Azure::Resources::Profiles::V2019_03_01_Hybrid::Mgmt::Client.new(options)
    
  8. Az egyszerű szolgáltatásnév Azure Stack hubhoz való hitelesítéséhez a végpontokat get_active_directory_settings () használatával kell meghatározni.To authenticate the service principal with Azure Stack Hub, the endpoints should be defined using get_active_directory_settings(). Ez a metódus a korábban beállított ARM_Endpoint környezeti változót használja:This method uses the ARM_Endpoint environment variable that you set previously:

    def get_active_directory_settings(armEndpoint)
      settings = MsRestAzure::ActiveDirectoryServiceSettings.new
      response = Net::HTTP.get_response(URI("#{armEndpoint}/metadata/endpoints?api-version=1.0"))
      status_code = response.code
      response_content = response.body
      unless status_code == "200"
        error_model = JSON.load(response_content)
        fail MsRestAzure::AzureOperationError.new("Getting Azure Stack Hub Metadata Endpoints", response, error_model)
      end
      result = JSON.load(response_content)
      settings.authentication_endpoint = result['authentication']['loginEndpoint'] unless result['authentication']['loginEndpoint'].nil?
      settings.token_audience = result['authentication']['audiences'][0] unless result['authentication']['audiences'][0].nil?
      settings
    end
    
  9. Futtassa a mintát.Run the sample.

    bundle exec ruby example.rb
    

További lépésekNext steps