Gerçek zamanlı çıkarsama için yeni dağıtımları güvenli bir şekilde devreye almak.

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Bu makalede, herhangi bir kesintiye neden olmadan üretimde makine öğrenmesi modelinin yeni bir sürümünü dağıtmayı öğreneceksiniz. Web hizmetinin yeni bir sürümünü üretime tanıtmak için güvenli dağıtım stratejisi olarak da bilinen mavi-yeşil dağıtım stratejisini kullanın. Bu stratejiyi kullandığınızda, web hizmetinin yeni sürümünü tamamen kullanıma sunmadan önce kullanıcıların veya isteklerin küçük bir alt kümesine dağıtmış olursunuz.

Bu makalede çevrimiçi uç noktaları veya çevrimiçi (gerçek zamanlı) çıkarım için kullanılan uç noktaları kullandığınız varsayılır. İki tür çevrimiçi uç nokta vardır: yönetilen çevrimiçi uç noktalar ve Kubernetes çevrimiçi uç noktaları. Uç noktalar ve uç nokta türleri arasındaki farklar hakkında daha fazla bilgi için bkz . Yönetilen çevrimiçi uç noktalar ve Kubernetes çevrimiçi uç noktaları.

Bu makalede dağıtım için yönetilen çevrimiçi uç noktalar kullanılır. Ancak, yönetilen çevrimiçi uç noktalar yerine Kubernetes uç noktalarının nasıl kullanılacağını açıklayan notlar da içerir.

Bu makalede şunları öğreneceksiniz:

  • Bir modelin ilk sürümüne hizmet vermek için adlı blue bir dağıtımla çevrimiçi uç nokta tanımlayın.
  • blue Daha fazla isteği işleyebilmesi için dağıtımı ölçeklendirin.
  • Modelin green olarak adlandırılan ikinci sürümünü uç noktasına dağıtın, ancak canlı trafik göndermeden dağıtımı gerçekleştirin.
  • Dağıtımı izole ederek green test edin.
  • Canlı trafiğin bir yüzdesini doğrulamak için green dağıtımına kopyalayın.
  • Gerçek zamanlı trafiğin küçük bir yüzdesini dağıtıma gönderin green.
  • Tüm canlı trafiği dağıtıma green gönderin.
  • Kullanılmayan blue dağıtımı silin.

Önkoşullar

  • Azure CLI ve ml Azure CLI uzantısı yüklenir ve yapılandırılır. Daha fazla bilgi için bkz. CLI'yi (v2) yükleme ve ayarlama.

  • Bash kabuğu veya uyumlu bir kabuk, örneğin Linux sistemindeki bir kabuk veya Linux için Windows Alt Sistemi. Bu makaledeki Azure CLI örneklerinde bu tür bir kabuk kullandığınız varsayılır.

  • Azure Machine Learning çalışma alanı. Çalışma alanı oluşturma yönergeleri için bkz. Ayarlama.

  • Aşağıdaki Azure rol tabanlı erişim denetimi (Azure RBAC) rollerinden en az birine sahip bir kullanıcı hesabı:

    • Azure Machine Learning çalışma alanına yönelik Sahip rolü
    • Azure Machine Learning çalışma alanı için Katkıda Bulunan rolü
    • Microsoft.MachineLearningServices/workspaces/onlineEndpoints/* izinleri olan özel bir rol

    Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanlarına erişimi yönetme.

  • İsteğe bağlı olarak Docker Altyapısı yerel olarak yüklenir ve çalışır. Bu önkoşul kesinlikle önerilir. Modeli yerel olarak dağıtmak için buna ihtiyacınız vardır ve hata ayıklama için yararlıdır.

Sisteminizi hazırlama

Ortam değişkenlerini belirleme

Azure CLI ile kullanılacak varsayılan değerleri yapılandırabilirsiniz. Aboneliğiniz, çalışma alanınız ve kaynak grubunuz için değerlerin birden çok kez geçirilmesini önlemek için aşağıdaki kodu çalıştırın:

az account set --subscription <subscription-ID>
az configure --defaults workspace=<Azure-Machine-Learning-workspace-name> group=<resource-group-name>

Örnek deposunu kopyalama

Bu makaleyi takip etmek için önce örnek deposunu (azureml-examples) kopyalayın. Ardından deponun cli/ dizinine gidin:

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli

İpucu

Yalnızca depoya en son işlemeyi kopyalamak için kullanın --depth 1 ; bu da işlemi tamamlamak için gereken süreyi azaltır.

Bu öğreticideki komutlar deploy-safe-rollout-online-endpoints.sh dizinindeki cli dosyasındadır. YAML yapılandırma dosyaları alt dizindedir endpoints/online/managed/sample/ .

Not

Kubernetes çevrimiçi uç noktaları için YAML yapılandırma dosyaları alt dizindedir endpoints/online/kubernetes/ .

Uç noktayı ve dağıtımı tanımlama

Çevrimiçi (gerçek zamanlı) çıkarım için çevrimiçi uç noktaları kullanın. Çevrimiçi uç noktalar, istemcilerden veri almaya ve yanıtları gerçek zamanlı olarak geri göndermeye hazır dağıtımlar içerir.

Uç nokta tanımlama

Aşağıdaki tabloda, bir uç nokta tanımladığınızda belirtilmesi gereken temel öznitelikler listelemektedir.

Öznitelik Gerekli veya isteğe bağlı Tanım
Ad Gerekli Uç noktanın adı. Azure bölgesinde benzersiz olmalıdır. Adlandırma kuralları hakkında daha fazla bilgi için bkz. Azure Machine Learning çevrimiçi uç noktaları ve toplu iş uç noktaları.
Kimlik doğrulaması modu Opsiyonel Uç nokta için kimlik doğrulama yöntemi. Anahtar tabanlı kimlik doğrulaması, , keyAzure Machine Learning belirteç tabanlı kimlik doğrulaması aml_tokenve Microsoft Entra belirteç tabanlı kimlik doğrulaması aad_tokenarasında seçim yapın. Anahtarın süresi dolmaz, ancak belirtecin süresi dolmaz. Kimlik doğrulaması hakkında daha fazla bilgi için bkz. Çevrimiçi uç noktalar için istemcilerin kimliğini doğrulama.
Tanım Opsiyonel Uç noktanın açıklaması.
Etiketler Opsiyonel Uç nokta için etiket sözlüğü.
Trafik Opsiyonel Dağıtımlar arasında trafiği yönlendirme kuralları. Trafiği anahtar-değer çiftlerinin sözlüğü olarak temsil eder; burada anahtar dağıtım adını, değer de bu dağıtıma gelen trafiğin yüzdesini temsil eder. Trafiği yalnızca bir uç nokta altında dağıtımları oluşturduktan sonra ayarlayabilirsiniz. Dağıtımlar oluşturulduktan sonra çevrimiçi uç nokta trafiğini de güncelleştirebilirsiniz. Yansıtılmış trafiği kullanma hakkında daha fazla bilgi için bkz. Yeni dağıtıma canlı trafiğin küçük bir yüzdesini ayırma.
Yansıtma trafiği Opsiyonel Bir dağıtıma yansıtılan canlı trafiğin yüzdesi. Daha fazla bilgi için yansıtılmış trafiği kullanma konusuna bakın: Yansıtılmış trafikle dağıtımı test etme.

Uç nokta oluştururken belirtebileceğiniz özniteliklerin tam listesini görmek için bkz. CLI (v2) çevrimiçi uç nokta YAML şeması. Python için Azure Machine Learning SDK'sının 2. sürümü için bkz. ManagedOnlineEndpoint Sınıfı.

Bir dağıtımı tanımla

Dağıtım, modeli barındıran ve gerçek çıkarım yapan bir kaynak kümesidir. Aşağıdaki tabloda, bir dağıtım tanımladığınızda belirtilmesi gereken temel öznitelikler açıklanmaktadır.

Öznitelik Gerekli veya isteğe bağlı Tanım
Ad Gerekli Dağıtımın adı.
Uç nokta adı Gerekli Dağıtımın oluşturulacağı uç noktanın adı.
Örnek Opsiyonel Dağıtım için kullanılacak model. Bu değer, çalışma alanında var olan sürümleme yapılmış bir modelin referansı veya satır içi model tanımı olabilir. Bu makalenin örneklerinde bir scikit-learn model regresyon yapar.
Kod yolu Opsiyonel Modeli puanlama için tüm Python kaynak kodunu içeren yerel geliştirme ortamındaki klasörün yolu. İç içe dizinleri ve paketleri kullanabilirsiniz.
Puanlama betiği Opsiyonel Belirli bir giriş isteğinde modeli yürüten Python kodu. Bu değer, kaynak kod klasöründeki puanlama dosyasının göreli yolu olabilir.
Puanlama betiği dağıtılan bir web hizmetine gönderilen verileri alır ve modele geçirir. Betik, modeli çalıştırdıktan sonra yanıtını istemciye gönderir. Puanlama betiği modelinize özgüdür ve modelin giriş olarak beklediği ve çıkış olarak döndürdüğü verileri anlaması gerekir.
Bu makaledeki örneklerde score.py dosyası kullanılabilecek. Bu Python kodunun bir init işlevi ve bir run işlevi olmalıdır. init İşlev, model oluşturulduktan veya güncelleştirildikten sonra çağrılır. Örneğin, modeli bellekte önbelleğe almak için kullanabilirsiniz. İşlev run , gerçek puanlama ve tahmin gerçekleştirmek için uç noktanın her çağrısında çağrılır.
Ortam Gerekli Modeli ve kodu barındıracak ortam. Bu değer, çalışma alanında mevcut bir sürümlü ortama referans veya yerinde ortam belirtimi olabilir. Ortam, Conda bağımlılıklarına sahip bir Docker görüntüsü, dockerfile veya kayıtlı bir ortam olabilir.
Örnek türü Gerekli Dağıtım için kullanılacak sanal makine boyutu. Desteklenen boyutların listesi için bkz. Yönetilen çevrimiçi uç noktalar SKU listesi.
Örnek sayısı Gerekli Dağıtım için kullanılacak örnek sayısı. Değeri beklediğiniz iş yüküne dayandırın. Yüksek kullanılabilirlik için en az üç örnek kullanın. Azure Machine Learning, yükseltmeleri gerçekleştirmek için fazladan yüzde 20 ayırır. Daha fazla bilgi için bkz. Azure Machine Learning çevrimiçi uç noktaları ve toplu iş uç noktaları.

Dağıtım oluştururken belirtebileceğiniz özniteliklerin tam listesini görmek için bkz. CLI (v2) yönetilen çevrimiçi dağıtım YAML şeması. Python SDK'sının 2. sürümü için bkz. ManagedOnlineDeployment Sınıfı.

Çevrimiçi uç nokta oluşturma

İlk olarak uç nokta adını ayarlayın. Ardından uç noktayı yapılandırın. Bu makalede, uç noktayı yapılandırmak için endpoints/online/managed/sample/endpoint.yml dosyasını kullanırsınız. Bu dosya aşağıdaki satırları içerir:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key

Aşağıdaki tabloda YAML uç noktası biçiminin kullandığı anahtarlar açıklanmaktadır. Bu özniteliklerin nasıl belirtileceğini görmek için bkz. CLI (v2) çevrimiçi uç nokta YAML şeması. Yönetilen çevrimiçi uç noktalarla ilgili sınırlar hakkında bilgi için bkz. Azure Machine Learning çevrimiçi uç noktaları ve toplu iş uç noktaları.

Anahtar Tanım
$schema (İsteğe bağlı) YAML şeması. YAML dosyasındaki tüm kullanılabilir seçenekleri görmek için, şemayı bir tarayıcıdaki önceki kod bloğunda görüntüleyebilirsiniz.
name Uç noktanın adı.
auth_mode Kimlik doğrulama modu. Anahtar tabanlı kimlik doğrulaması için kullanın key . Azure Machine Learning belirteç tabanlı kimlik doğrulaması için kullanın aml_token . Microsoft Entra belirteç tabanlı kimlik doğrulaması için aad_token kullanın. En son belirteci almak için az ml online-endpoint get-credentials komutunu kullanın.

Çevrimiçi uç nokta oluşturmak için:

  1. Aşağıdaki Unix komutunu çalıştırarak uç nokta adınızı ayarlayın. YOUR_ENDPOINT_NAME yerine benzersiz bir ad yazın.

    export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
    

    Önemli

    Uç nokta adları bir Azure bölgesinde benzersiz olmalıdır. Örneğin, Azure westus2 bölgesinde adıyla my-endpointyalnızca bir uç nokta olabilir.

  2. Aşağıdaki kodu çalıştırarak uç noktayı bulutta oluşturun. Uç noktayı yapılandırmak için bu kod endpoint.yml dosyasını kullanır.

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    

Mavi dağıtımı oluştur

endpoints/online/managed/sample/blue-deployment.yml dosyasını, blue adlı dağıtımın önemli yönlerini konfigüre etmek için kullanabilirsiniz. Bu dosya aşağıdaki satırları içerir:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

Uç noktanız için blue dağıtımını oluşturmak üzere blue-deployment.yml dosyasını kullanın ve aşağıdaki komutu çalıştırın.

az ml online-deployment create --name blue --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic

Önemli

Komuttaki --all-traffic bayrağı, az ml online-deployment create uç nokta trafiğinin yüzde 100'ünü yeni oluşturulan blue dağıtıma ayırır.

blue-deployment.yaml Dosyasında, path satır dosyaların karşıya yüklendiği yeri belirtir. Azure Machine Learning CLI dosyaları karşıya yüklemek ve modeli ve ortamı kaydetmek için bu bilgileri kullanır. Üretim için en iyi yöntem olarak modeli ve ortamı kaydedin ve YAML kodunda kayıtlı adı ve sürümü ayrı olarak belirtin. Modelin biçimini model: azureml:<model-name>:<model-version> kullanın, örneğin, model: azureml:my-model:1. Çevre için biçimi environment: azureml:<environment-name>:<environment-version> kullanın, örneğin environment: azureml:my-env:1.

Kayıt için, model ve environment YAML tanımlarını ayrı YAML dosyalarına ayıklayabilir ve az ml model create ve az ml environment create komutlarını kullanabilirsiniz. Bu komutlar hakkında daha fazla bilgi edinmek için az ml model create -h ve az ml environment create -h komutlarını çalıştırın.

Modelinizi varlık olarak kaydetme hakkında daha fazla bilgi için bkz. Azure CLI veya Python SDK'sını kullanarak model kaydetme. Ortam oluşturma hakkında daha fazla bilgi için bkz. Özel ortam oluşturma.

Mevcut dağıtımınızı onaylayın

Mevcut dağıtımınızı doğrulamanın bir yolu, belirli bir giriş isteği için modelinizi puanlandırmak üzere uç noktanızı çağırmaktır. Uç noktanızı Azure CLI veya Python SDK'sı aracılığıyla çağırdığınızda, gelen trafiği alacak dağıtımın adını belirtmeyi seçebilirsiniz.

Not

Azure CLI veya Python SDK'sının aksine, Azure Machine Learning Stüdyosu bir uç noktayı çağırdığınızda bir dağıtım belirtmenizi gerektirir.

Dağıtım adıyla uç noktayı çağırma

Uç noktayı çağırdığınızda, trafik almak istediğiniz dağıtımın adını belirtebilirsiniz. Bu durumda Azure Machine Learning uç nokta trafiğini doğrudan belirtilen dağıtıma yönlendirir ve çıkışını döndürür. --deployment-name veya deployment_name seçeneğini kullanabilirsiniz.

Dağıtım belirtmeden uç noktayı çağırma

Trafik almak istediğiniz dağıtımı belirtmeden uç noktayı çağırırsanız Azure Machine Learning, trafik denetimi ayarlarına göre uç noktanın gelen trafiğini uç noktadaki dağıtımlara yönlendirir.

Trafik denetimi ayarları, uç noktadaki her dağıtıma belirtilen gelen trafik yüzdelerini ayırır. Örneğin, trafik kurallarınız uç noktanızdaki belirli bir dağıtımın 40% gelen trafiği alması gerektiğini belirtiyorsa Azure Machine Learning uç nokta trafiğinin 40% bu dağıtıma yönlendirir.

Mevcut uç noktanızın ve dağıtımınızın durumunu görüntülemek için aşağıdaki komutları çalıştırın:

az ml online-endpoint show --name $ENDPOINT_NAME 

az ml online-deployment show --name blue --endpoint $ENDPOINT_NAME 

Çıkışta uç nokta ve $ENDPOINT_NAME dağıtım hakkındaki blue bilgiler listelenir.

Örnek verileri kullanarak uç noktayı test edin

komutunu kullanarak invoke uç noktayı çağırabilirsiniz. Aşağıdaki komut, örnek bir istek göndermek için sample-request.json JSON dosyasını kullanır:

az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json

Daha fazla trafiği işlemek için mevcut dağıtımınızı ölçeklendirme

Çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puanlandırma bölümünde açıklanan dağıtımda, dağıtım YAML dosyasında instance_count değerini 1 olarak ayarlarsınız. update komutunu kullanarak ölçeklendirin:

az ml online-deployment update --name blue --endpoint-name $ENDPOINT_NAME --set instance_count=2

Not

Önceki komutta --set seçeneği dağıtım yapılandırmasını geçersiz kılar. Alternatif olarak, YAML dosyasını güncelleştirebilir ve update seçeneğini kullanarak --file komutuna giriş olarak geçirebilirsiniz.

Yeni bir model dağıtın ancak trafik göndermeyin

adlı greenyeni bir dağıtım oluşturun:

az ml online-deployment create --name green --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/green-deployment.yml

Dağıtıma açıkça herhangi bir trafik ayırmadığınız için, green dağıtımına ayrılan trafik sıfırdır. Aşağıdaki komutu kullanarak bu gerçeği doğrulayabilirsiniz:

az ml online-endpoint show -n $ENDPOINT_NAME --query traffic

Yeni dağıtımı test edin

Dağıtımda trafiğin green yüzde 0'ı ayrılmış olsa da, şu seçeneği kullanarak --deployment doğrudan çağırabilirsiniz:

az ml online-endpoint invoke --name $ENDPOINT_NAME --deployment-name green --request-file endpoints/online/model-2/sample-request.json

Trafik kurallarından geçmeden dağıtımı doğrudan çağırmak için bir REST istemcisi kullanmak istiyorsanız, aşağıdaki HTTP üst bilgisini ayarlayın: azureml-model-deployment: <deployment-name>. Aşağıdaki kod, dağıtımı doğrudan çağırmak için URL için İstemci (cURL) kullanır. Kodu Linux için Unix veya Windows Alt Sistemi (WSL) ortamında çalıştırabilirsiniz. Değeri alma $ENDPOINT_KEY yönergeleri için bkz. Veri düzlemi anahtarı veya belirteci alma.

# get the scoring uri
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
# use curl to invoke the endpoint
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --header "azureml-model-deployment: green" --data @endpoints/online/model-2/sample-request.json

Yansıtılmış trafikle dağıtımı test etme

Dağıtımınızı green test ettikten sonra, bu trafik yüzdesini kopyalayıp dağıtıma göndererek canlı trafiğin bir yüzdesini uç noktanıza green. Gölgelendirme olarak da adlandırılan trafik yansıtma, istemcilere döndürülen sonuçları değiştirmez. Tüm istekler blue dağıtımına hala akıyor. Trafiğin aynalanmış yüzdesi kopyalanır ve ayrıca istemcilerinizi etkilemeden ölçümleri ve günlükleri toplamak için green dağıtıma gönderilir.

Yansıtma, istemcileri etkilemeden yeni bir dağıtımı doğrulamak istediğinizde kullanışlıdır. Örneğin, gecikme süresinin kabul edilebilir sınırlar içinde olup olmadığını denetlemek veya HTTP hatası olup olmadığını denetlemek için yansıtmayı kullanabilirsiniz. Yeni bir dağıtımı test etmek için trafik yansıtma veya gölgeleme kullanımı gölge testi olarak da bilinir. Yansıtılmış trafiği alan dağıtım (bu durumda green dağıtımı) aynı zamanda gölge dağıtım olarak da adlandırılabilir.

Yansıtma aşağıdaki sınırlamalara sahiptir:

  • Yansıtma, Azure Machine Learning CLI'nın 2.4.0 ve sonraki sürümleri ile Python SDK'sının 1.0.0 ve sonraki sürümleri için desteklenir. Uç noktayı güncelleştirmek için Azure Machine Learning CLI veya Python SDK'sının eski bir sürümünü kullanıyorsanız yansıtma trafiği ayarını kaybedersiniz.
  • Kubernetes çevrimiçi uç noktaları için yansıtma şu anda desteklenmemektedir.
  • Trafiği bir uç noktadaki tek bir dağıtıma yansıtabilirsiniz.
  • Yansıtabileceğiniz maksimum trafik yüzdesi yüzde 50'dir. Bu üst sınır, varsayılan değeri 5 MB/sn olan uç nokta bant genişliği kotanızdaki etkiyi sınırlar. Ayrılmış kotayı aşarsanız uç nokta bant genişliğiniz kısıtlanır. Bant genişliği azaltmayı izleme hakkında bilgi için bkz . Bant genişliği azaltma.

Ayrıca aşağıdaki davranışa da dikkat edin:

  • Bir dağıtımı, her ikisini birden değil yalnızca canlı veya yansıtılmış trafiği alacak şekilde yapılandırabilirsiniz.
  • Bir uç noktayı çağırdığınızda, bir gölge dağıtım dahil herhangi bir dağıtımının adını belirterek tahmin döndürmesini sağlayabilirsiniz.
  • Bir uç noktayı çağırıp gelen trafiği alacak dağıtımın adını belirttiğinizde, Azure Machine Learning trafiği gölge dağıtıma yansıtmaz. Azure Machine Learning, bir dağıtım belirtmediğinizde uç noktaya gönderilen trafikten gelen trafiği gölge dağıtıma yansıtır.

Dağıtımı yansıtılmış trafiğin yüzde 10'unu alacak şekilde ayarlarsanız, istemciler yine de sadece green dağıtımından tahminler almaya devam eder.

Uç nokta üzerinden trafik akışını gösteren diyagram. Tüm trafik mavi dağıtıma gider ve yüzde 10'u yeşil dağıtıma yansıtılır.

Trafiğin yüzde 10'unu yansıtmak ve dağıtıma göndermek için green aşağıdaki komutu kullanın:

az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=10"

Yansıtılmış trafiği test etmek için dağıtım belirtmeden uç noktayı birkaç kez çağırın. Uç nokta gelen trafiği yönlendirir:

for i in {1..20} ; do
    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
done

Dağıtımdaki günlükleri denetleyerek trafiğin belirtilen yüzdesinin green dağıtıma gönderildiğini onaylayabilirsiniz.

az ml online-deployment get-logs --name green --endpoint $ENDPOINT_NAME

Test ettikten sonra yansıtmayı devre dışı bırakmak için yansıtma trafiğini sıfır olarak ayarlayın:

az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=0"

Yeni dağıtıma canlı trafiğin küçük bir yüzdesini ayırın

Dağıtımınızı green test ettikten sonra, buna trafiğin küçük bir yüzdesini ayırın:

az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=90 green=10"

İpucu

Trafiği devre dışı bırakmak için toplam trafik yüzdesi yüzde 0 veya trafiği etkinleştirmek için yüzde 100 olmalıdır.

Dağıtımınız green artık tüm canlı trafiğin yüzde 10'unu alıyor. İstemciler hem blue hem de green dağıtımlarından tahminler alır.

Uç nokta üzerinden trafik akışını gösteren diyagram. Mavi dağıtım trafiğin yüzde 90'ını, yeşil dağıtımı ise yüzde 10'unu alır.

Tüm trafiği yeni dağıtıma gönderme

green dağıtımınızdan tam olarak memnun olduğunuzda, tüm trafiği ona yönlendirin.

az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=0 green=100"

Eski dağıtımı kaldırma

Yönetilen çevrimiçi uç noktadan tek bir dağıtımı silmek için aşağıdaki adımları kullanın. Tek bir dağıtımın silinmesi, yönetilen çevrimiçi uç noktadaki diğer dağıtımları etkilemez:

az ml online-deployment delete --name blue --endpoint $ENDPOINT_NAME --yes --no-wait

Uç noktayı ve dağıtımı silin

Uç noktayı ve dağıtımı kullanmayacaksanız bunları silin. Bir uç birimi sildiğinizde, ona bağlı tüm dağıtımları da silersiniz.

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait