API-verzióprofilok használata a Rubyval az Azure Stack Hubban
Ruby- és API-verzióprofilok
Az Azure Stack Hubhoz készült Ruby SDK Resource Manager eszközöket biztosít az infrastruktúra létrehozásához és kezeléséhez. Az SDK erőforrás-szolgáltatói közé tartozik a Compute, a Virtual Networks és a Storage, a Ruby nyelvvel. A Ruby SDK API-profiljai lehetővé teszik a hibrid felhőfejlesztést azáltal, hogy lehetővé teszik a globális Azure-erőforrások és -erőforrások közötti váltást az Azure Stack Hubon.
Az API-profil az erőforrás-szolgáltatók és a szolgáltatásverziók kombinációja. Az API-profilokkal különböző erőforrástípusokat kombinálhat.
- Az összes szolgáltatás legújabb verzióinak használatához használja az Azure SDK összesítő drágaköve legújabb profilját.
- A profilok neve dátum szerint, például
V2020_09_01_Hybrid
vagyV2019_03_01_Hybrid
formátumban van megadva. - Egy szolgáltatás legújabb API-verziójának használatához használja az adott gem Legújabb profilját. Ha például csak a compute szolgáltatás legújabb API-verzióját szeretné használni, használja a Compute gem Legújabb profilját.
- Ha egy adott API-verziót szeretne használni egy szolgáltatáshoz, használja a gemben meghatározott API-verziókat.
Az Azure Ruby SDK telepítése
Telepítse a Gitet.
Telepítse a Rubyt.
Telepítéskor válassza a Ruby hozzáadása PATH változóhoz lehetőséget.
Amikor a Ruby telepítésekor a rendszer kéri, telepítse a fejlesztői készletet.
Ezután telepítse a kötegelőt a következő paranccsal:
Gem install bundler
Ha nem érhető el, hozzon létre egy előfizetést, és mentse a később használni kívánt előfizetés-azonosítót. Az előfizetések létrehozására vonatkozó utasításokat az Előfizetések létrehozása ajánlatokhoz az Azure Stack Hubban című cikkben találja.
Hozzon létre egy szolgáltatásnevet, és mentse annak azonosítóját és titkos kódját. Az Azure Stack Hub szolgáltatásnevének létrehozására vonatkozó utasításokat az Alkalmazásidentitás használata erőforrások eléréséhez című cikkben találja.
Győződjön meg arról, hogy a szolgáltatásnévhez hozzá van rendelve a közreműködői/tulajdonosi szerepkör az előfizetéshez. A szerepkörök szolgáltatásnévhez való hozzárendelésére vonatkozó utasításokat az Alkalmazásidentitás használata erőforrások eléréséhez című cikkben találja.
A RubyGem-csomagok telepítése
Az Azure RubyGem-csomagokat közvetlenül is telepítheti.
gem install azure_mgmt_compute
gem install azure_mgmt_storage
gem install azure_mgmt_resources
gem install azure_mgmt_network
Vagy használja őket a Gemfile-ban.
gem 'azure_mgmt_storage'
gem 'azure_mgmt_compute'
gem 'azure_mgmt_resources'
gem 'azure_mgmt_network'
Az Azure Resource Manager Ruby SDK előzetes verzióban érhető el, és valószínűleg kompatibilitástörő felületi változásokon fog átesni a következő kiadásokban. Az alverzióban megnövekedett szám kompatibilitástörő változásokat jelezhet.
A azure_sdk gem használata
A azure_sdk gem a Ruby SDK összes támogatott drágaköveinek összesítése.
Az azure_sdk összesítő drágakövet a következő paranccsal telepítheti:
gem install 'azure_sdk'
Profilok
Dátumokat tartalmazó profilok esetén, ha másik SDK-profilt vagy -verziót szeretne használni, helyettesítse be a dátumot a következőben: V<date>_Hybrid
. A 2008-es verzió esetében például a profil , 2019_03_01
a sztring pedig a lesz V2019_03_01_Hybrid
. Vegye figyelembe, hogy előfordulhat, hogy az SDK-csapat megváltoztatja a csomagok nevét, ezért előfordulhat, hogy egy sztring dátumának egy másik dátumra való lecserélése nem fog működni. A profilok és az Azure Stack-verziók társítását az alábbi táblázatban találja.
A dátum helyett használhatja is latest
.
Azure Stack-verzió | Profil |
---|---|
2311 | 2020_09_01 |
2301 | 2020_09_01 |
2206 | 2020_09_01 |
2108 | 2020_09_01 |
2102 | 2020_09_01 |
2008 | 2019_03_01 |
További információ az Azure Stack Hubról és az API-profilokról: Az API-profilok összegzése.
Lásd: Ruby SDK-profilok.
Előfizetés
Ha még nem rendelkezik előfizetéssel, hozzon létre egy előfizetést, és mentse a később használni kívánt előfizetés-azonosítót. Az előfizetések létrehozásával kapcsolatos további információkért tekintse meg ezt a dokumentumot.
Szolgáltatásnév
A szolgáltatásnevet és a hozzá tartozó környezeti információkat valahol létre kell hozni és menteni kell. A szerepkörrel rendelkező owner
szolgáltatásnév használata ajánlott, de a mintától függően elegendő lehet egy contributor
szerepkör. A szükséges értékekért tekintse meg az alábbi táblázatot.
Érték | Környezeti változók | Description |
---|---|---|
Bérlőazonosító | AZURE_TENANT_ID |
Az Azure Stack Hub-bérlő azonosítója. |
Ügyfél-azonosító | AZURE_CLIENT_ID |
A szolgáltatásnév alkalmazásazonosítója a szolgáltatásnév létrehozásakor lett mentve a cikk előző szakaszában. |
Előfizetés azonosítója | AZURE_SUBSCRIPTION_ID |
Az előfizetés-azonosítóval férhet hozzá az Azure Stack Hubban elérhető ajánlatokhoz. |
Titkos ügyfélkulcs | AZURE_CLIENT_SECRET |
A szolgáltatásnév létrehozásakor mentett egyszerű alkalmazáskulcs. |
Resource Manager végpont | ARM_ENDPOINT |
Lásd: Az Azure Stack Hub Resource Manager végpontja. |
Bérlőazonosító
Az Azure Stack Hub címtár- vagy bérlőazonosítójának megkereséséhez kövesse az ebben a cikkben található utasításokat.
Erőforrás-szolgáltatók regisztrálása
Regisztrálja a szükséges erőforrás-szolgáltatókat a dokumentum követésével. Ezekre az erőforrás-szolgáltatókra a futtatni kívánt mintáktól függően lesz szükség. Ha például virtuálisgép-mintát szeretne futtatni, az Microsoft.Compute
erőforrás-szolgáltató regisztrációjára van szükség.
Azure Stack Resource Manager-végpont
Az Azure Resource Manager (ARM) egy felügyeleti keretrendszer, amely lehetővé teszi a rendszergazdák számára az Azure-erőforrások üzembe helyezését, kezelését és monitorozását. Az Azure Resource Manager ezeket a feladatokat nem egyenként, hanem csoportként tudja kezelni egyetlen műveletben. A metaadat-adatokat a Resource Manager végpontról szerezheti be. A végpont egy JSON-fájlt ad vissza a kód futtatásához szükséges információkkal.
- Az Azure Stack Development Kitben (ASDK) található ResourceManagerEndpointUrl a következő:
https://management.local.azurestack.external/
. - Az integrált rendszerekben a ResourceManagerEndpointUrl a következő:
https://management.region.<fqdn>/
, ahol<fqdn>
a teljes tartománynév. - A szükséges metaadatok lekéréséhez:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Az elérhető API-verziókért lásd: Azure rest API-specifikációk. Például a profilverzióban2020-09-01
módosíthatja a értéket azapi-version
2019-10-01
erőforrás-szolgáltatómicrosoft.resources
esetében.
JSON-minta:
{
"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ása
Microsoft Windows
A környezeti változók beállításához használja a következő formátumot egy Windows-parancssorban:
set AZURE_TENANT_ID=<YOUR_TENANT_ID>
macOS-, Linux- és Unix-alapú rendszerek
Unix-alapú rendszerekben használja a következő parancsot:
export AZURE_TENANT_ID=<YOUR_TENANT_ID>
Az Azure Stack Hub- és API-profilokkal kapcsolatos további információkért lásd az API-profilok összegzését.
Azure Ruby SDK API-profilhasználat
A profilügyfél példányosításához használja az alábbi kódot. Ez a paraméter csak az Azure Stack Hubhoz vagy más magánfelhőkhöz szükséges. A globális Azure alapértelmezés szerint már rendelkezik ezekkel a beállításokkal.
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ügyfél az egyes erőforrás-szolgáltatókhoz, például a számításhoz, a tároláshoz és a hálózathoz való hozzáféréshez használható:
# 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örnyezeti beállítási függvények definiálása
A szolgáltatásnév Azure Stack Hub-környezetben való hitelesítéséhez definiálja a végpontokat a használatával get_active_directory_settings()
. Ez a metódus a korábban beállított ARM_Endpoint környezeti változót használja:
# 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
Példák
A GitHubon az alábbi mintákat használhatja a Ruby- és Azure Stack Hub API-profilokkal rendelkező megoldások létrehozásához:
- Azure-erőforrások és erőforráscsoportok kezelése a Rubyval.
- Virtuális gépek kezelése a Ruby használatával
- SSH-kompatibilis virtuális gép üzembe helyezése sablonnal a Rubyban.
Mintaerőforrás-kezelő és -csoportok
A minta futtatásához győződjön meg arról, hogy telepítette a Rubyt. Ha Visual Studio Code-ot használ, töltse le a Ruby SDK-bővítményt is.
Megjegyzés
A minta adattára a Hybrid-Resource-Manager-Ruby-Resources-And-Groups.
Klónozza az adattárat:
git clone https://github.com/Azure-Samples/Hybrid-Resource-Manager-Ruby-Resources-And-Groups.git
Telepítse a függőségeket csomag használatával:
cd Hybrid-Resource-Manager-Ruby-Resources-And-Groups bundle install
Hozzon létre egy Azure-szolgáltatásnevet a PowerShell használatával, és kérje le a szükséges értékeket.
A szolgáltatásnév létrehozásával kapcsolatos útmutatásért lásd: Szolgáltatásnév létrehozása Azure PowerShell tanúsítvánnyal.
A szükséges értékek a következők:
- Bérlőazonosító
- Ügyfél-azonosító
- Titkos ügyfélkulcs
- Előfizetés azonosítója
- Resource Manager végpont
Állítsa be a következő környezeti változókat a létrehozott szolgáltatásnévből lekért információk alapján:
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 következőt
set
export
: .Győződjön meg arról, hogy a helyváltozó az Azure Stack Hub helyére van állítva; például:
LOCAL="local"
.A megfelelő Active Directory-végpontok megcélzásához adja hozzá a következő kódsort, ha Azure Stack Hubot vagy más magánfelhőt használ:
active_directory_settings = get_active_directory_settings(ENV['ARM_ENDPOINT'])
A változóban
options
adja hozzá az Active Directory beállításait és az alap URL-címet az Azure Stack Hub használatához:options = { credentials: credentials, subscription_id: subscription_id, active_directory_settings: active_directory_settings, base_url: ENV['ARM_ENDPOINT'] }
Hozzon létre egy olyan profilügyfélt, amely az Azure Stack Hub-profilt célozza meg:
client = Azure::Resources::Profiles::V2019_03_01_Hybrid::Mgmt::Client.new(options)
A szolgáltatásnév Azure Stack Hubbal való hitelesítéséhez a végpontokat get_active_directory_settings() használatával kell definiálni. Ez a metódus a korábban beállított ARM_Endpoint környezeti változót használja:
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.
bundle exec ruby example.rb
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: