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.0
To 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:
- Azure-erőforrások és-erőforráscsoportok kezelése a Ruby-mel.Manage Azure resources and resource groups with Ruby.
- Virtuális gépek kezelése a Ruby használatával (a 2019-03-01-hibrid profilt használó minta, amely az Azure stack hub által támogatott legújabb API-verziókat célozza meg).Manage virtual machines using Ruby (Sample that uses 2019-03-01-hybrid profile to target the latest API versions supported by Azure Stack Hub).
- Egy SSH-t használó virtuális gép üzembe helyezése a rubyban található sablonnal.Deploy an SSH Enabled VM with a Template in Ruby.
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.
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
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
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, useset
instead ofexport
.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"
.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'])
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 theoptions
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'] }
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)
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
Futtassa a mintát.Run the sample.
bundle exec ruby example.rb