Použití profilů verzí rozhraní API s Ruby ve službě Azure Stack Hub
Ruby a profily verzí rozhraní API
Sada Ruby SDK pro službu Azure Stack Hub Resource Manager poskytuje nástroje, které vám pomůžou sestavovat a spravovat infrastrukturu. Mezi poskytovatele prostředků v sadě SDK patří Compute, Virtual Networks a Storage s jazykem Ruby. Profily rozhraní API v sadě Ruby SDK umožňují vývoj hybridního cloudu tím, že pomáhají přepínat mezi globálními prostředky Azure a prostředky ve službě Azure Stack Hub.
Profil rozhraní API je kombinací poskytovatelů prostředků a verzí služeb. Profil rozhraní API můžete použít ke kombinování různých typů prostředků.
- Pokud chcete používat nejnovější verze všech služeb, použijte profil Nejnovější kumulativní sady Azure SDK.
- Profily jsou pojmenované podle data ve formátu, jako
V2020_09_01_Hybrid
je neboV2019_03_01_Hybrid
. - Pokud chcete použít nejnovější verzi služby api , použijte profil Nejnovější konkrétního gemu. Pokud například chcete použít samotnou nejnovější verzi rozhraní API výpočetní služby, použijte profil Nejnovějšívýpočetního objektu.
- Pokud chcete pro službu použít konkrétní verzi rozhraní API , použijte konkrétní verze rozhraní API definované v gemu.
Instalace sady Azure Ruby SDK
Nainstalujte Git.
Nainstalujte Ruby.
Při instalaci zvolte Přidat Ruby do proměnné PATH.
Po zobrazení výzvy během instalace Ruby nainstalujte sadu Development Kit.
Dále nainstalujte bundler pomocí následujícího příkazu:
Gem install bundler
Pokud není k dispozici, vytvořte předplatné a uložte ID předplatného, abyste ho mohli použít později. Pokyny k vytvoření předplatného najdete v článku Vytváření předplatných pro nabídky ve službě Azure Stack Hub .
Vytvořte instanční objekt a uložte jeho ID a tajný kód. Pokyny k vytvoření instančního objektu pro Azure Stack Hub najdete v článku Použití identity aplikace pro přístup k prostředkům .
Ujistěte se, že váš instanční objekt má ve vašem předplatném přiřazenou roli přispěvatele nebo vlastníka. Pokyny k přiřazení role instančnímu objektu najdete v článku Použití identity aplikace pro přístup k prostředkům .
Instalace balíčků RubyGem
Balíčky Azure RubyGem můžete nainstalovat přímo.
gem install azure_mgmt_compute
gem install azure_mgmt_storage
gem install azure_mgmt_resources
gem install azure_mgmt_network
Nebo je použijte ve svém gemfile.
gem 'azure_mgmt_storage'
gem 'azure_mgmt_compute'
gem 'azure_mgmt_resources'
gem 'azure_mgmt_network'
Sada Azure Resource Manager Ruby SDK je ve verzi Preview a v nadcházejících verzích bude pravděpodobně obsahovat zásadní změny rozhraní. Vyšší počet v podverzi může značit změny způsobující chybu.
Použití azure_sdk gemu
Azure_sdk gem je souhrnem všech podporovaných drahokamů v sadě Ruby SDK.
Kumulativní azure_sdk gem můžete nainstalovat pomocí následujícího příkazu:
gem install 'azure_sdk'
Profily
Pokud chcete použít jiný profil nebo verzi sady SDK, nahraďte u profilů obsahujících kalendářní data v V<date>_Hybrid
souboru . Například pro verzi 2008 je 2019_03_01
profil a řetězec se změní V2019_03_01_Hybrid
na . Všimněte si, že někdy tým SADY SDK změní název balíčků, takže pouhé nahrazení data řetězce jiným datem nemusí fungovat. V následující tabulce najdete informace o přidružení profilů a verzí služby Azure Stack.
Místo data můžete také použít latest
.
Verze služby Azure Stack | 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 |
Další informace o službě Azure Stack Hub a profilech rozhraní API najdete v tématu Souhrn profilů rozhraní API.
Předplatné
Pokud ještě předplatné nemáte, vytvořte předplatné a uložte ID předplatného, abyste ho mohli použít později. Informace o tom, jak vytvořit předplatné, najdete v tomto dokumentu.
Instanční objekt
Instanční objekt a informace o jeho přidruženém prostředí by se měly někde vytvořit a uložit. Doporučuje se instanční objekt s owner
rolí, ale v závislosti na ukázce contributor
může stačit role. Požadované hodnoty najdete v následující tabulce.
Hodnota | Proměnné prostředí | Description |
---|---|---|
ID tenanta | AZURE_TENANT_ID |
ID vašeho tenanta služby Azure Stack Hub. |
ID klienta | AZURE_CLIENT_ID |
ID aplikace instančního objektu uložené při vytvoření instančního objektu v předchozí části tohoto článku |
ID předplatného | AZURE_SUBSCRIPTION_ID |
ID předplatného použijete pro přístup k nabídkám ve službě Azure Stack Hub. |
Tajný klíč klienta | AZURE_CLIENT_SECRET |
Tajný kód aplikace instančního objektu uložený při vytvoření instančního objektu |
koncový bod Resource Manager | ARM_ENDPOINT |
Viz Koncový bod služby Azure Stack Hub Resource Manager. |
ID tenanta
Pokud chcete najít ID adresáře nebo tenanta pro službu Azure Stack Hub, postupujte podle pokynů v tomto článku.
Registrace poskytovatelů prostředků
Podle tohoto dokumentu zaregistrujte požadované poskytovatele prostředků. Tito poskytovatelé prostředků budou vyžadováni v závislosti na ukázkách, které chcete spustit. Pokud například chcete spustit ukázku virtuálního počítače, Microsoft.Compute
vyžaduje se registrace poskytovatele prostředků.
Koncový bod Azure Stack Resource Manageru
Azure Resource Manager (ARM) je architektura pro správu, která správcům umožňuje nasazovat, spravovat a monitorovat prostředky Azure. Azure Resource Manager může tyto úlohy zpracovávat jako skupinu, nikoli jednotlivě, v rámci jedné operace. Informace o metadatech můžete získat z koncového bodu Resource Manager. Koncový bod vrátí soubor JSON s informacemi potřebnými ke spuštění kódu.
- ResourceManagerEndpointUrl v sadě Azure Stack Development Kit (ASDK) je:
https://management.local.azurestack.external/
. - ResourceManagerEndpointUrl v integrovaných systémech je:
https://management.region.<fqdn>/
, kde<fqdn>
je plně kvalifikovaný název domény. - Načtení požadovaných metadat:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Dostupné verze rozhraní API najdete v tématu Specifikace rozhraní Azure Rest API. Například ve2020-09-01
verzi profilu můžete změnitapi-version
na2019-10-01
pro poskytovatelemicrosoft.resources
prostředků .
Ukázkový kód JSON:
{
"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"]
}
}
Nastavení proměnných prostředí
Microsoft Windows
Pokud chcete nastavit proměnné prostředí, použijte na příkazovém řádku Windows následující formát:
set AZURE_TENANT_ID=<YOUR_TENANT_ID>
systémy macOS, Linux a Unix
V systémech Unix použijte následující příkaz:
export AZURE_TENANT_ID=<YOUR_TENANT_ID>
Další informace o službě Azure Stack Hub a profilech rozhraní API najdete v části Souhrn profilů rozhraní API.
Využití profilu rozhraní API sady Azure Ruby SDK
K vytvoření instance klienta profilu použijte následující kód. Tento parametr se vyžaduje jenom pro Azure Stack Hub nebo jiné privátní cloudy. Globální Azure už má tato nastavení ve výchozím nastavení.
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)
Klienta profilu je možné použít pro přístup k jednotlivým poskytovatelům prostředků, jako jsou výpočetní prostředky, úložiště a síť:
# 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
Definování funkcí nastavení prostředí služby Azure Stack Hub
Pokud chcete ověřit instanční objekt v prostředí Služby Azure Stack Hub, definujte koncové body pomocí get_active_directory_settings()
. Tato metoda používá proměnnou prostředí ARM_Endpoint , kterou jste nastavili dříve:
# 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
Ukázky
Následující ukázky na GitHubu použijte jako reference pro vytváření řešení s využitím profilů rozhraní API ruby a služby Azure Stack Hub:
- Správa prostředků Azure a skupin prostředků pomocí Ruby
- Správa virtuálních počítačů pomocí Ruby
- Nasazení virtuálního počítače s podporou SSH pomocí šablony v Ruby
Ukázkový resource manager a skupiny
Pokud chcete ukázku spustit, ujistěte se, že jste nainstalovali Ruby. Pokud používáte Visual Studio Code, stáhněte si také rozšíření Ruby SDK.
Poznámka
Úložiště pro ukázku je Hybrid-Resource-Manager-Ruby-Resources-And-Groups.
Naklonujte úložiště:
git clone https://github.com/Azure-Samples/Hybrid-Resource-Manager-Ruby-Resources-And-Groups.git
Nainstalujte závislosti pomocí sady:
cd Hybrid-Resource-Manager-Ruby-Resources-And-Groups bundle install
Pomocí PowerShellu vytvořte instanční objekt Azure a načtěte potřebné hodnoty.
Pokyny k vytvoření instančního objektu najdete v tématu Použití Azure PowerShell k vytvoření instančního objektu s certifikátem.
Potřebné hodnoty jsou:
- ID tenanta
- ID klienta
- Tajný klíč klienta
- ID předplatného
- koncový bod Resource Manager
Pomocí informací získaných z vytvořeného instančního objektu nastavte následující proměnné prostředí:
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}
Poznámka
Ve Windows použijte
set
místo .export
Ujistěte se, že proměnná umístění je nastavená na umístění služby Azure Stack Hub. Například
LOCAL="local"
.Pokud chcete cílit na správné koncové body služby Active Directory, přidejte následující řádek kódu, pokud používáte Službu Azure Stack Hub nebo jiné privátní cloudy:
active_directory_settings = get_active_directory_settings(ENV['ARM_ENDPOINT'])
options
Do proměnné přidejte nastavení služby Active Directory a základní adresu URL pro práci se službou Azure Stack Hub:options = { credentials: credentials, subscription_id: subscription_id, active_directory_settings: active_directory_settings, base_url: ENV['ARM_ENDPOINT'] }
Vytvořte klienta profilu, který cílí na profil služby Azure Stack Hub:
client = Azure::Resources::Profiles::V2019_03_01_Hybrid::Mgmt::Client.new(options)
K ověření instančního objektu ve službě Azure Stack Hub je potřeba koncové body definovat pomocí get_active_directory_settings(). Tato metoda používá proměnnou prostředí ARM_Endpoint , kterou jste nastavili dříve:
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
Spusťte ukázku.
bundle exec ruby example.rb
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro