Aracılığıyla paylaş


Depolama hesabı erişim anahtarlarını yeniden oluşturma

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v1Python SDK azureml v1

ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

Azure Machine Learning tarafından kullanılan Azure Depolama hesaplarının erişim anahtarlarını değiştirmeyi öğrenin. Azure Machine Learning, verileri veya eğitilmiş modelleri depolamak için depolama hesaplarını kullanabilir.

Güvenlik amacıyla, bir Azure Depolama hesabının erişim anahtarlarını değiştirmeniz gerekebilir. Erişim anahtarını yeniden oluştururken Azure Machine Learning'in yeni anahtarı kullanacak şekilde güncelleştirilmiş olması gerekir. Azure Machine Learning hem model depolaması hem de veri deposu olarak depolama hesabını kullanıyor olabilir.

Önemli

Veri depolarına kaydedilen kimlik bilgileri, çalışma alanıyla ilişkili Azure Key Vault'unuza kaydedilir. Key Vault'unuz için geçici silmeyi etkinleştirdiyseniz, bu makalede kimlik bilgilerini güncelleştirme yönergeleri sağlanır. Veri deposunun kaydını kaldırıp aynı adla yeniden kaydetmeyi denerseniz, bu eylem başarısız olur. Bu senaryoda geçici silmeyi etkinleştirme hakkında bilgi için bkz . Mevcut bir anahtar kasası için Geçici Silme'yi açma.

Önkoşullar

  • Azure Machine Learning çalışma alanı. Daha fazla bilgi için Çalışma alanı kaynakları oluşturma makalesine bakın.

Not

Bu belgedeki kod parçacıkları Python SDK'sının 1.0.83 sürümüyle test edilmiştir.

Güncelleştirilmesi gerekenler

Depolama hesapları Azure Machine Learning çalışma alanı (günlükleri, modelleri, anlık görüntüleri vb. depolama) ve veri deposu olarak kullanılabilir. Çalışma alanını güncelleştirme işlemi tek bir Azure CLI komutudur ve depolama anahtarı güncelleştirildikten sonra değiştirilebilir. Veri depolarını güncelleştirme işlemi daha çok söz konusudur ve depolama hesabını hangi veri depolarının kullandığını keşfetmeyi ve sonra bunları yeniden kaydetmeyi gerektirir.

Önemli

Çalışma alanını Azure CLI'yı ve veri depolarını Python kullanarak aynı anda güncelleştirin. Yalnızca birini veya diğerini güncelleştirmek yeterli değildir ve her ikisi de güncelleştirilene kadar hatalara neden olabilir.

Veri depolarınız tarafından kullanılan depolama hesaplarını bulmak için aşağıdaki kodu kullanın:

from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

#Enter details of your Azure Machine Learning workspace
subscription_id = '<SUBSCRIPTION_ID>'
resource_group = '<RESOURCE_GROUP>'
workspace_name = '<AZUREML_WORKSPACE_NAME>'

ml_client = MLClient(credential=DefaultAzureCredential(),
                        subscription_id=subscription_id, 
                        resource_group_name=resource_group,
                        workspace_name=workspace_name)

# list all the datastores
datastores = ml_client.datastores.list()
for ds in datastores:
    if ds.credentials.type == "account_key":
        if ds.type.name == "AZURE_BLOB":
            print("Blob store - datastore name: " + ds.name + ", storage account name: " +
                  ds.account_name + ", container name: " + ds.container_name)
        if ds.type.name == "AZURE_FILE":
            print("Blob store - datastore name: " + ds.name + ", storage account name: " +
                  ds.account_name + ", file share name: " + ds.file_share_name)

Bu kod, anahtar kimlik doğrulaması ile Azure Depolama kullanan kayıtlı veri depolarını arar ve aşağıdaki bilgileri listeler:

  • Veri deposu adı: Depolama hesabının kayıtlı olduğu veri deposunun adı.
  • Depolama hesabı adı: Azure Depolama hesabının adı.
  • Kapsayıcı: Bu kayıt tarafından kullanılan depolama hesabındaki kapsayıcı.
  • Dosya paylaşımı: Bu kayıt tarafından kullanılan dosya paylaşımı.
import azureml.core
from azureml.core import Workspace, Datastore

ws = Workspace.from_config()

default_ds = ws.get_default_datastore()
print("Default datstore: " + default_ds.name + ", storage account name: " +
      default_ds.account_name + ", container name: " + default_ds.container_name)

datastores = ws.datastores
for name, ds in datastores.items():
    if ds.datastore_type == "AzureBlob":
        print("Blob store - datastore name: " + name + ", storage account name: " +
              ds.account_name + ", container name: " + ds.container_name)
    if ds.datastore_type == "AzureFile":
        print("File share - datastore name: " + name + ", storage account name: " +
              ds.account_name + ", container name: " + ds.container_name)

Bu kod, Azure Depolama kullanan kayıtlı veri depolarını arar ve aşağıdaki bilgileri listeler:

  • Veri deposu adı: Depolama hesabının kayıtlı olduğu veri deposunun adı.
  • Depolama hesabı adı: Azure Depolama hesabının adı.
  • Kapsayıcı: Bu kayıt tarafından kullanılan depolama hesabındaki kapsayıcı.

Ayrıca, her veri deposu türünü yeniden kaydetmek için farklı yöntemler bulunduğundan veri deposunun bir Azure Blob veya Azure Dosya paylaşımı için olup olmadığını gösterir.

Erişim anahtarlarını yeniden oluşturmayı planladığınız depolama hesabı için bir giriş varsa veri deposu adını, depolama hesabı adını ve kapsayıcı adını kaydedin.

Erişim anahtarını güncelleştirme

Azure Machine Learning'i yeni anahtarı kullanacak şekilde güncelleştirmek için aşağıdaki adımları kullanın:

Önemli

Tüm adımları gerçekleştirin, hem çalışma alanını CLI kullanarak güncelleştirin hem de Python kullanarak veri depolarını güncelleştirin. Her ikisi de güncelleştirilene kadar yalnızca birinin veya diğerinin güncelleştirilmesi hatalara neden olabilir.

  1. Anahtarı yeniden üretin. Erişim anahtarını yeniden oluşturma hakkında bilgi için bkz . Depolama hesabı erişim anahtarlarını yönetme. Yeni anahtarı kaydedin.

  2. Azure Machine Learning çalışma alanı yeni anahtarı otomatik olarak eşitler ve bir saat sonra kullanmaya başlar. Çalışma alanını yeni anahtarla hemen eşitlemeye zorlamak için aşağıdaki adımları kullanın:

    1. Aşağıdaki Azure CLI komutunu kullanarak çalışma alanınızı içeren Azure aboneliğinde oturum açmak için:

      az login
      

      İpucu

      Oturum açtığınızda Azure hesabınızla ilişkili aboneliklerin listesini görürsünüz. ile isDefault: true abonelik bilgileri, Azure CLI komutları için şu anda etkinleştirilmiş olan aboneliktir. Bu abonelik, Azure Machine Learning çalışma alanınızı içeren abonelikle aynı olmalıdır. Abonelik bilgilerini Azure portalında çalışma alanınızın genel bakış sayfasında bulabilirsiniz.

      Azure CLI komutlarını kullanmak üzere başka bir abonelik seçmek için komutunu çalıştırın az account set -s <subscription> ve geçiş için abonelik adını veya kimliğini belirtin. Abonelik seçimi hakkında daha fazla bilgi için bkz . Birden çok Azure aboneliği kullanma.

    2. Çalışma alanını yeni anahtarı kullanacak şekilde güncelleştirmek için aşağıdaki komutu kullanın. değerini myworkspace Azure Machine Learning çalışma alanı adınızla, değerini ise çalışma alanını içeren Azure kaynak grubunun adıyla değiştirin myresourcegroup .

      az ml workspace sync-keys -n myworkspace -g myresourcegroup
      

      Bu komut, çalışma alanı tarafından kullanılan Azure depolama hesabının yeni anahtarlarını otomatik olarak eşitler.

  3. DEPOLAMA hesabını kullanan veri depolarını SDK veya Azure Machine Learning stüdyosu aracılığıyla yeniden kaydedebilirsiniz.

    1. Veri depolarını Python SDK'sı aracılığıyla yeniden kaydetmek için Güncelleştirilmesi gerekenler bölümündeki değerleri ve 1. adımdaki anahtarı aşağıdaki kodla kullanın.

      from azure.ai.ml.entities import AzureBlobDatastore, AccountKeyConfiguration
      from azure.ai.ml import MLClient
      from azure.identity import DefaultAzureCredential
      
      subscription_id = '<SUBSCRIPTION_ID>'
      resource_group = '<RESOURCE_GROUP>'
      workspace_name = '<AZUREML_WORKSPACE_NAME>'
      
      ml_client = MLClient(credential=DefaultAzureCredential(),
                              subscription_id=subscription_id, 
                              resource_group_name=resource_group,
                              workspace_name=workspace_name)
      
      blob_datastore1 = AzureBlobDatastore(
          name="your datastore name",
          description="Description",
          account_name="your storage account name",
          container_name="your container name",
          protocol="https",
          credentials=AccountKeyConfiguration(
              account_key="new storage account key"
          ),
      )
      ml_client.create_or_update(blob_datastore1)
      

      Belirtildiğinden overwrite=True , bu kod var olan kaydın üzerine yazar ve yeni anahtarı kullanacak şekilde güncelleştirir.

      # Re-register the blob container
      ds_blob = Datastore.register_azure_blob_container(workspace=ws,
                                                datastore_name='your datastore name',
                                                container_name='your container name',
                                                account_name='your storage account name',
                                                account_key='new storage account key',
                                                overwrite=True)
      # Re-register file shares
      ds_file = Datastore.register_azure_file_share(workspace=ws,
                                            datastore_name='your datastore name',
                                            file_share_name='your container name',
                                            account_name='your storage account name',
                                            account_key='new storage account key',
                                            overwrite=True)
      
      
    2. Veri depolarını stüdyo aracılığıyla yeniden kaydetmek için

      1. Stüdyoda, sol bölmede Varlıklar'ın altında Veri'yi seçin.

      2. Üst kısımda Veri depoları'nı seçin.

      3. Hangi veri depolarını güncelleştirmek istediğinizi seçin.

      4. Sol üst kısımdaki Kimlik bilgilerini güncelleştir düğmesini seçin.

      5. 1. adımdaki yeni erişim anahtarınızı kullanarak formu doldurun ve Kaydet'e tıklayın.

        Varsayılan veri deponuzun kimlik bilgilerini güncelleştiriyorsanız, bu adımı tamamlayın ve yeni anahtarınızı çalışma alanının varsayılan veri deposuyla yeniden eşitlemek için 2b. adımı yineleyin.

Sonraki adımlar

Veri depolarını kullanma hakkında daha fazla bilgi için bkz . Veri depolarını kullanma.

Veri depolarını kaydetme hakkında daha fazla bilgi için sınıf başvurusuna Datastore bakın.