Aracılığıyla paylaş


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_Hybridgibi V2020_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

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>_Hybridkullanın. Örneğin, 2008 sürümü için profil olur 2019_03_01ve 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.

Bkz . Ruby SDK profilleri.

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.resourcesiçin olarak değiştirebilirsiniz api-version2019-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:

Ö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.

  1. Depoyu kopyalayın:

    git clone https://github.com/Azure-Samples/Hybrid-Resource-Manager-Ruby-Resources-And-Groups.git
    
  2. Paket kullanarak bağımlılıkları yükleyin:

    cd Hybrid-Resource-Manager-Ruby-Resources-And-Groups
    bundle install
    
  3. 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 exportkullanınset.

  4. Konum değişkeninin Azure Stack Hub konumunuza ayarlandığından emin olun; örneğin, LOCAL="local".

  5. 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'])
    
  6. 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']
    }
    
  7. Azure Stack Hub profilini hedefleyen bir profil istemcisi oluşturun:

    client = Azure::Resources::Profiles::V2019_03_01_Hybrid::Mgmt::Client.new(options)
    
  8. 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
    
  9. Örnek uygulamayı çalıştırın.

    bundle exec ruby example.rb
    

Sonraki adımlar