Azure Stack Hub'da Ruby ile API sürüm profillerini kullanma
Ruby ve API sürüm profilleri
Azure Stack Hub Resource Manager için Ruby SDK, altyapınızı oluşturmanıza ve yönetmenize yardımcı olacak araçlar sağlar. SDK'daki kaynak sağlayıcıları Arasında Ruby diliyle İşlem, Sanal Ağlar ve Depolama yer alır. Ruby SDK'daki API profilleri, Azure Stack Hub'daki genel Azure kaynakları ve kaynakları arasında geçiş yapmanıza yardımcı olarak hibrit bulut geliştirmesine olanak tanır.
API profili, kaynak sağlayıcıları ve hizmet sürümlerinin birleşimidir. Farklı kaynak türlerini birleştirmek için BIR API profili kullanabilirsiniz.
- Tüm hizmetlerin en son sürümlerini kullanmak için Azure SDK toplama mücevherinin en son profilini kullanın.
- Profiller veya
V2019_03_01_Hybrid
gibiV2020_09_01_Hybrid
biçimde tarihe göre adlandırılır. - Bir hizmetin en son api sürümünü kullanmak için belirli bir mücevherin En son profilini kullanın. Örneğin, yalnızca işlem hizmetinin en son api sürümünü kullanmak için İşlem mücevherinin En son profilini kullanın.
- Bir hizmette belirli bir api sürümünü kullanmak için gem içinde tanımlanan belirli API sürümlerini kullanın.
Azure Ruby SDK'sını yükleme
Git'i yükleyin.
Ruby'yi yükleyin.
Yüklerken PATH değişkenine Ruby ekle'yi seçin.
Ruby yüklemesi sırasında istendiğinde geliştirme setini yükleyin.
Ardından, aşağıdaki komutu kullanarak paketleyiciyi yükleyin:
Gem install bundler
Kullanılamıyorsa, bir abonelik oluşturun ve daha sonra kullanmak üzere abonelik kimliğini kaydedin. Abonelik oluşturma yönergeleri Azure Stack Hub'da teklifler için abonelik oluşturma makalesinde yer alır .
Bir hizmet sorumlusu oluşturun ve kimliğini ve gizli dizisini kaydedin. Azure Stack Hub için hizmet sorumlusu oluşturma yönergeleri , Kaynaklara erişmek için uygulama kimliği kullanma makalesinde yer alır.
Hizmet sorumlunuzun aboneliğinizde katkıda bulunan/sahip rolünün atandığından emin olun. Hizmet sorumlusuna rol atama yönergeleri, Kaynaklara erişmek için uygulama kimliği kullanma makalesinde yer alır.
RubyGem paketlerini yükleme
Azure RubyGem paketlerini doğrudan yükleyebilirsiniz.
gem install azure_mgmt_compute
gem install azure_mgmt_storage
gem install azure_mgmt_resources
gem install azure_mgmt_network
Veya bunları Gemfile dosyanızda kullanabilirsiniz.
gem 'azure_mgmt_storage'
gem 'azure_mgmt_compute'
gem 'azure_mgmt_resources'
gem 'azure_mgmt_network'
Azure Resource Manager Ruby SDK önizleme aşamasındadır ve büyük olasılıkla gelecek sürümlerde hataya neden olan arabirim değişikliklerine sahip olacaktır. İkincil sürümde artan bir sayı, hataya neden olan değişiklikleri gösterebilir.
azure_sdk mücevheri kullanma
azure_sdk gem, Ruby SDK'da desteklenen tüm mücevherlerin bir paketidir.
aşağıdaki komutla azure_sdk toplama mücevherini yükleyebilirsiniz:
gem install 'azure_sdk'
Profiller
Tarih içeren profiller için farklı bir SDK profili veya sürümü kullanmak için içindeki tarihi V<date>_Hybrid
kullanın. Örneğin, 2008 sürümü için profil olur 2019_03_01
ve dize olur V2019_03_01_Hybrid
. Bazen SDK ekibinin paketlerin adını değiştirdiğini unutmayın; bu nedenle bir dizenin tarihini farklı bir tarihle değiştirmek işe yaramayabilir. Profillerin ve Azure Stack sürümlerinin ilişkilendirmesi için aşağıdaki tabloya bakın.
Tarih yerine de kullanabilirsiniz latest
.
Azure Stack sürümü | 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 |
Azure Stack Hub ve API profilleri hakkında daha fazla bilgi için bkz. API profillerinin özeti.
Abonelik
Henüz aboneliğiniz yoksa bir abonelik oluşturun ve daha sonra kullanmak üzere abonelik kimliğini kaydedin. Abonelik oluşturma hakkında bilgi için bu belgeye bakın.
Hizmet Sorumlusu
Bir hizmet sorumlusu ve ilişkili ortam bilgileri oluşturulup bir yere kaydedilmelidir. Rolü olan owner
hizmet sorumlusu önerilir, ancak örne bağlı olarak bir contributor
rol yeterli olabilir. Gerekli değerler için aşağıdaki tabloya bakın.
Değer | Ortam değişkenleri | Description |
---|---|---|
Kiracı Kimliği | AZURE_TENANT_ID |
Azure Stack Hub kiracı kimliğiniz. |
İstemci Kimliği | AZURE_CLIENT_ID |
Bu makalenin önceki bölümünde hizmet sorumlusu oluşturulduğunda kaydedilen hizmet sorumlusu uygulama kimliği. |
Abonelik Kimliği | AZURE_SUBSCRIPTION_ID |
Azure Stack Hub'daki tekliflere erişmek için abonelik kimliğini kullanırsınız. |
İstemci Gizli Anahtarı | AZURE_CLIENT_SECRET |
Hizmet sorumlusu oluşturulduğunda kaydedilen hizmet sorumlusu uygulama gizli dizisi. |
Resource Manager Uç Noktası | ARM_ENDPOINT |
Bkz. Azure Stack Hub Resource Manager uç noktası. |
Kiracı Kimliği
Azure Stack Hub'ınızın dizin veya kiracı kimliğini bulmak için bu makaledeki yönergeleri izleyin.
Kaynak sağlayıcılarını kaydetme
Bu belgeyi izleyerek gerekli kaynak sağlayıcılarını kaydedin. Çalıştırmak istediğiniz örneklere bağlı olarak bu kaynak sağlayıcıları gereklidir. Örneğin, bir VM örneği çalıştırmak istiyorsanız kaynak Microsoft.Compute
sağlayıcısı kaydı gereklidir.
Azure Stack kaynak yöneticisi uç noktası
Azure Resource Manager (ARM), yöneticilerin Azure kaynaklarını dağıtmasını, yönetmesini ve izlemesini sağlayan bir yönetim çerçevesidir. Azure Resource Manager bu görevleri tek bir işlemde tek tek değil grup olarak işleyebilir. Meta veri bilgilerini Resource Manager uç noktasından alabilirsiniz. Uç nokta, kodunuzu çalıştırmak için gereken bilgileri içeren bir JSON dosyası döndürür.
- Azure Stack Geliştirme Seti'ndeki (ASDK) ResourceManagerEndpointUrl :
https://management.local.azurestack.external/
. - Tümleşik sistemlerdeki ResourceManagerEndpointUrl şu şekildedir:
https://management.region.<fqdn>/
burada<fqdn>
tam etki alanı adınızdır. - Gerekli meta verileri almak için:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Kullanılabilir API sürümleri için bkz. Azure rest API belirtimleri. Örneğin,2020-09-01
profil sürümünde kaynak sağlayıcısımicrosoft.resources
için olarak değiştirebilirsinizapi-version
2019-10-01
.
Örnek 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"]
}
}
Ortam değişkenlerini belirleme
Microsoft Windows
Ortam değişkenlerini ayarlamak için Windows komut isteminde aşağıdaki biçimi kullanın:
set AZURE_TENANT_ID=<YOUR_TENANT_ID>
macOS, Linux ve Unix tabanlı sistemler
Unix tabanlı sistemlerde aşağıdaki komutu kullanın:
export AZURE_TENANT_ID=<YOUR_TENANT_ID>
Azure Stack Hub ve API profilleri hakkında daha fazla bilgi için bkz. API profillerinin özeti.
Azure Ruby SDK API profili kullanımı
Profil istemcisi örneği oluşturmak için aşağıdaki kodu kullanın. Bu parametre yalnızca Azure Stack Hub veya diğer özel bulutlar için gereklidir. Genel Azure'da bu ayarlar varsayılan olarak zaten vardır.
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)
Profil istemcisi İşlem, Depolama ve Ağ gibi tek tek kaynak sağlayıcılarına erişmek için kullanılabilir:
# 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 ortam ayarı işlevlerini tanımlama
Azure Stack Hub ortamında hizmet sorumlusunun kimliğini doğrulamak için kullanarak get_active_directory_settings()
uç noktaları tanımlayın. Bu yöntem, daha önce ayarladığınız ARM_Endpoint ortam değişkenini kullanır:
# 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
Örnekler
Ruby ve Azure Stack Hub API profilleriyle çözüm oluşturmaya yönelik başvurular olarak GitHub'da aşağıdaki örnekleri kullanın:
- Ruby ile Azure kaynaklarını ve kaynak gruplarını yönetin.
- Ruby kullanarak sanal makineleri yönetme
- Ruby'de Şablon ile SSH Özellikli VM dağıtma.
Örnek kaynak yöneticisi ve grupları
Örneği çalıştırmak için Ruby'yi yüklediğinizden emin olun. Visual Studio Code kullanıyorsanız Ruby SDK uzantısını da indirin.
Not
Örneğin deposu Hybrid-Resource-Manager-Ruby-Resources-And-Groups'tır.
Depoyu kopyalayın:
git clone https://github.com/Azure-Samples/Hybrid-Resource-Manager-Ruby-Resources-And-Groups.git
Paket kullanarak bağımlılıkları yükleyin:
cd Hybrid-Resource-Manager-Ruby-Resources-And-Groups bundle install
PowerShell kullanarak bir Azure hizmet sorumlusu oluşturun ve gereken değerleri alın.
Hizmet sorumlusu oluşturma yönergeleri için bkz. Sertifikayla hizmet sorumlusu oluşturmak için Azure PowerShell kullanma.
Gereken değerler şunlardır:
- Kiracı Kimliği
- İstemci Kimliği
- Gizli anahtar
- Abonelik Kimliği
- uç noktayı Resource Manager
Oluşturduğunuz hizmet sorumlusundan alınan bilgileri kullanarak aşağıdaki ortam değişkenlerini ayarlayı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}
Not
Windows'da yerine
export
kullanınset
.Konum değişkeninin Azure Stack Hub konumunuza ayarlandığından emin olun; örneğin,
LOCAL="local"
.Doğru Active Directory uç noktalarını hedeflemek için Azure Stack Hub veya diğer özel bulutları kullanıyorsanız aşağıdaki kod satırını ekleyin:
active_directory_settings = get_active_directory_settings(ENV['ARM_ENDPOINT'])
değişkeninde
options
, Azure Stack Hub ile çalışmak için Active Directory ayarlarını ve temel URL'yi ekleyin:options = { credentials: credentials, subscription_id: subscription_id, active_directory_settings: active_directory_settings, base_url: ENV['ARM_ENDPOINT'] }
Azure Stack Hub profilini hedefleyen bir profil istemcisi oluşturun:
client = Azure::Resources::Profiles::V2019_03_01_Hybrid::Mgmt::Client.new(options)
Azure Stack Hub ile hizmet sorumlusunun kimliğini doğrulamak için uç noktaların get_active_directory_settings() kullanılarak tanımlanması gerekir. Bu yöntem, daha önce ayarladığınız ARM_Endpoint ortam değişkenini kullanır:
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
Örnek uygulamayı çalıştırın.
bundle exec ruby example.rb
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin