Używanie profilów wersji interfejsu API z językiem Ruby w usłudze Azure Stack Hub
Profile wersji języka Ruby i interfejsu API
Zestaw SDK języka Ruby dla usługi Azure Stack Hub Resource Manager udostępnia narzędzia ułatwiające tworzenie infrastruktury i zarządzanie nią. Dostawcy zasobów w zestawie SDK obejmują usługi Compute, Virtual Networks i Storage z językiem Ruby. Profile interfejsów API w zestawie SDK języka Ruby umożliwiają opracowywanie chmury hybrydowej, pomagając przełączać się między globalnymi zasobami i zasobami platformy Azure w usłudze Azure Stack Hub.
Profil interfejsu API to kombinacja dostawców zasobów i wersji usług. Profil interfejsu API umożliwia łączenie różnych typów zasobów.
- Aby użyć najnowszych wersji wszystkich usług, użyj najnowszego profilu pakietu zbiorczego zestawu SDK platformy Azure.
- Profile są nazwane według daty w formacie, takim jak
V2020_09_01_Hybrid
lubV2019_03_01_Hybrid
. - Aby użyć najnowszej wersji interfejsu API usługi, użyj najnowszego profilu określonego klejnotu. Aby na przykład użyć najnowszej wersji usługi obliczeniowej interfejsu API , użyj najnowszego profilu klejnotu obliczeniowego .
- Aby użyć określonej wersji interfejsu API dla usługi, użyj określonych wersji interfejsu API zdefiniowanych wewnątrz rozwiązania Gem.
Instalowanie zestawu Azure Ruby SDK
Zainstaluj usługę Git.
Zainstaluj język Ruby.
Podczas instalowania wybierz pozycję Dodaj zmienną Ruby do zmiennej PATH.
Po wyświetleniu monitu podczas instalacji języka Ruby zainstaluj zestaw deweloperów.
Następnie zainstaluj pakiet przy użyciu następującego polecenia:
Gem install bundler
Jeśli nie jest dostępna, utwórz subskrypcję i zapisz identyfikator subskrypcji, który będzie używany później. Instrukcje dotyczące tworzenia subskrypcji znajdują się w artykule Tworzenie subskrypcji ofert w usłudze Azure Stack Hub .
Utwórz jednostkę usługi i zapisz jej identyfikator i wpis tajny. Instrukcje dotyczące tworzenia jednostki usługi dla usługi Azure Stack Hub znajdują się w artykule Używanie tożsamości aplikacji do uzyskiwania dostępu do zasobów .
Upewnij się, że jednostka usługi ma przypisaną rolę współautora/właściciela subskrypcji. Instrukcje dotyczące przypisywania roli do jednostki usługi znajdują się w artykule Używanie tożsamości aplikacji do uzyskiwania dostępu do zasobów .
Instalowanie pakietów RubyGem
Pakiety Języka RubyGem platformy Azure można zainstalować bezpośrednio.
gem install azure_mgmt_compute
gem install azure_mgmt_storage
gem install azure_mgmt_resources
gem install azure_mgmt_network
Możesz też użyć ich w pliku Gemfile.
gem 'azure_mgmt_storage'
gem 'azure_mgmt_compute'
gem 'azure_mgmt_resources'
gem 'azure_mgmt_network'
Zestaw Azure Resource Manager Ruby SDK jest w wersji zapoznawczej i prawdopodobnie będzie miał zmiany powodujące niezgodność interfejsu w nadchodzących wersjach. Zwiększona liczba w wersji pomocniczej może wskazywać na zmiany powodujące niezgodność.
Korzystanie z klejnotu azure_sdk
Azure_sdk gem to pakiet zbiorczy wszystkich obsługiwanych klejnotów w zestawie SDK języka Ruby.
Możesz zainstalować zestaw zbiorczy azure_sdk za pomocą następującego polecenia:
gem install 'azure_sdk'
Profile
W przypadku profilów zawierających daty użyj innego profilu lub wersji zestawu SDK, zastąp datę w pliku V<date>_Hybrid
. Na przykład w wersji 2008 profil to 2019_03_01
, a ciąg staje się ciągiem V2019_03_01_Hybrid
. Należy pamiętać, że czasami zespół zestawu SDK zmienia nazwę pakietów, więc po prostu zastąpienie daty ciągu inną datą może nie działać. Zapoznaj się z poniższą tabelą, aby zapoznać się z skojarzeniem profilów i wersji usługi Azure Stack.
Możesz również użyć latest
zamiast daty.
Wersja usługi 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 |
Aby uzyskać więcej informacji na temat profilów usługi Azure Stack Hub i interfejsu API, zobacz Podsumowanie profilów interfejsu API.
Zobacz Profile zestawu SDK języka Ruby.
Subskrypcja
Jeśli nie masz jeszcze subskrypcji, utwórz subskrypcję i zapisz identyfikator subskrypcji do późniejszego użycia. Aby uzyskać informacje na temat tworzenia subskrypcji, zobacz ten dokument.
Jednostka usługi
Jednostka usługi i skojarzone z nią informacje o środowisku powinny zostać utworzone i zapisane gdzieś. Zalecana jest jednostka usługi z rolą owner
, ale w zależności od próbki contributor
rola może wystarczyć. Zapoznaj się z poniższą tabelą, aby uzyskać wymagane wartości.
Wartość | Zmienne środowiskowe | Opis |
---|---|---|
Identyfikator dzierżawy | AZURE_TENANT_ID |
Identyfikator dzierżawy usługi Azure Stack Hub. |
Identyfikator klienta | AZURE_CLIENT_ID |
Identyfikator aplikacji jednostki usługi zapisany podczas tworzenia jednostki usługi w poprzedniej sekcji tego artykułu. |
Identyfikator subskrypcji | AZURE_SUBSCRIPTION_ID |
Identyfikator subskrypcji służy do uzyskiwania dostępu do ofert w usłudze Azure Stack Hub. |
Klucz tajny klienta | AZURE_CLIENT_SECRET |
Wpis tajny aplikacji jednostki usługi zapisany podczas tworzenia jednostki usługi. |
punkt końcowy Resource Manager | ARM_ENDPOINT |
Zobacz punkt końcowy usługi Azure Stack Hub Resource Manager. |
Identyfikator dzierżawy
Aby znaleźć katalog lub identyfikator dzierżawy usługi Azure Stack Hub, postępuj zgodnie z instrukcjami w tym artykule.
Rejestrowanie dostawców zasobów
Zarejestruj wymaganych dostawców zasobów, postępując zgodnie z tym dokumentem. Ci dostawcy zasobów będą zobowiązani w zależności od przykładów, które chcesz uruchomić. Jeśli na przykład chcesz uruchomić przykładową maszynę wirtualną, Microsoft.Compute
wymagana jest rejestracja dostawcy zasobów.
Punkt końcowy usługi Azure Stack Resource Manager
Azure Resource Manager (ARM) to struktura zarządzania, która umożliwia administratorom wdrażanie i monitorowanie zasobów platformy Azure oraz zarządzanie nimi. Usługa Azure Resource Manager może obsługiwać te zadania jako grupę, a nie pojedynczo w ramach jednej operacji. Informacje o metadanych można uzyskać z punktu końcowego Resource Manager. Punkt końcowy zwraca plik JSON z informacjami wymaganymi do uruchomienia kodu.
- Element ResourceManagerEndpointUrl w zestawie Azure Stack Development Kit (ASDK) to:
https://management.local.azurestack.external/
. - Element ResourceManagerEndpointUrl w zintegrowanych systemach to:
https://management.region.<fqdn>/
, gdzie<fqdn>
jest w pełni kwalifikowaną nazwą domeny. - Aby pobrać wymagane metadane:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Aby uzyskać informacje o dostępnych wersjach interfejsu API, zobacz Specyfikacje interfejsu API REST platformy Azure. Na przykład w2020-09-01
wersji profilu można zmienić wartość naapi-version
2019-10-01
dla dostawcymicrosoft.resources
zasobów .
Przykładowy kod 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"]
}
}
Ustawianie zmiennych środowiskowych
Microsoft Windows
Aby ustawić zmienne środowiskowe, użyj następującego formatu w wierszu polecenia systemu Windows:
set AZURE_TENANT_ID=<YOUR_TENANT_ID>
systemy macOS, Linux i Unix
W systemach opartych na systemie Unix użyj następującego polecenia:
export AZURE_TENANT_ID=<YOUR_TENANT_ID>
Aby uzyskać więcej informacji na temat profilów usługi Azure Stack Hub i interfejsu API, zobacz Podsumowanie profilów interfejsu API.
Użycie profilu interfejsu API zestawu Azure Ruby SDK
Użyj następującego kodu, aby utworzyć wystąpienie klienta profilu. Ten parametr jest wymagany tylko w przypadku usługi Azure Stack Hub lub innych chmur prywatnych. Globalna platforma Azure ma już te ustawienia domyślnie.
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)
Klient profilu może służyć do uzyskiwania dostępu do poszczególnych dostawców zasobów, takich jak obliczenia, magazyn i sieć:
# 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
Definiowanie funkcji ustawień środowiska usługi Azure Stack Hub
Aby uwierzytelnić jednostkę usługi w środowisku usługi Azure Stack Hub, zdefiniuj punkty końcowe przy użyciu polecenia get_active_directory_settings()
. Ta metoda używa wcześniej ustawionej zmiennej środowiskowej ARM_Endpoint:
# 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
Przykłady
Skorzystaj z poniższych przykładów w witrynie GitHub jako dokumentacji dotyczącej tworzenia rozwiązań przy użyciu profilów interfejsu API języka Ruby i usługi Azure Stack Hub:
- Zarządzanie zasobami i grupami zasobów platformy Azure przy użyciu języka Ruby.
- Zarządzanie maszynami wirtualnymi przy użyciu języka Ruby
- Wdrażanie maszyny wirtualnej z obsługą protokołu SSH przy użyciu szablonu w języku Ruby.
Przykładowy menedżer zasobów i grupy
Aby uruchomić przykład, upewnij się, że zainstalowano język Ruby. Jeśli używasz Visual Studio Code, pobierz również rozszerzenie zestawu SDK języka Ruby.
Uwaga
Repozytorium przykładu to Hybrid-Resource-Manager-Ruby-Resources-And-Groups.
Sklonuj repozytorium:
git clone https://github.com/Azure-Samples/Hybrid-Resource-Manager-Ruby-Resources-And-Groups.git
Zainstaluj zależności przy użyciu pakietu:
cd Hybrid-Resource-Manager-Ruby-Resources-And-Groups bundle install
Utwórz jednostkę usługi platformy Azure przy użyciu programu PowerShell i pobierz wymagane wartości.
Aby uzyskać instrukcje dotyczące tworzenia jednostki usługi, zobacz Tworzenie jednostki usługi przy użyciu Azure PowerShell przy użyciu certyfikatu.
Potrzebne są następujące wartości:
- Identyfikator dzierżawy
- Identyfikator klienta
- Klucz tajny klienta
- Identyfikator subskrypcji
- punkt końcowy Resource Manager
Ustaw następujące zmienne środowiskowe przy użyciu informacji pobranych z utworzonej jednostki usługi:
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}
Uwaga
W systemie Windows użyj polecenia
set
zamiastexport
.Upewnij się, że zmienna lokalizacji jest ustawiona na lokalizację usługi Azure Stack Hub; na przykład
LOCAL="local"
.Aby zastosować prawidłowe punkty końcowe usługi Active Directory, dodaj następujący wiersz kodu, jeśli używasz usługi Azure Stack Hub lub innych chmur prywatnych:
active_directory_settings = get_active_directory_settings(ENV['ARM_ENDPOINT'])
W zmiennej
options
dodaj ustawienia usługi Active Directory i podstawowy adres URL, aby pracować z usługą Azure Stack Hub:options = { credentials: credentials, subscription_id: subscription_id, active_directory_settings: active_directory_settings, base_url: ENV['ARM_ENDPOINT'] }
Utwórz klienta profilu, który jest przeznaczony dla profilu usługi Azure Stack Hub:
client = Azure::Resources::Profiles::V2019_03_01_Hybrid::Mgmt::Client.new(options)
Aby uwierzytelnić jednostkę usługi w usłudze Azure Stack Hub, należy zdefiniować punkty końcowe przy użyciu get_active_directory_settings(). Ta metoda używa wcześniej ustawionej zmiennej środowiskowej ARM_Endpoint:
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
Uruchom przykład.
bundle exec ruby example.rb
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla