MaxCompute özel görüntüleri, üçüncü taraf bağımlılıkları Docker görüntülerine paketlemenize ve bunları SQL ile Python (PyODPS veya MaxFrame) işlerinde kullanmanıza olanak tanır.
Arka Plan
MaxCompute SQL ve Python geliştirmeleri sıklıkla çok sayıda üçüncü taraf pakete dayanır. Özel görüntü yönetimi özelliği, MaxCompute SQL ve Python (PyODPS veya MaxFrame) işleriniz için eksiksiz geliştirme ortamları oluşturmak amacıyla Docker görüntülerini kullanmanızı sağlar.
Önkoşullar
Görüntü boyutu: MaxCompute'de tek bir özel görüntünün maksimum boyutu 10 GB'tır.
Görüntü sayısı: Her MaxCompute kiracısı en fazla 10 görüntü yükleyebilir.
ACR sürüm gereksinimleri: Yalnızca ACR Enterprise Edition'ın Standard Edition ve Premium Edition örnekleri desteklenir.
CPU mimarisi gereksinimi: Görüntülerinizi x86_64 CPU mimarisinde oluşturun. macOS M serisi çipler ve ARM gibi x86_64 dışı CPU mimarileri desteklenmez.
Kitaplık sürümü gereksinimleri: MaxCompute iş çalışma zamanı ortamı CentOS 7 ile karşılaştırılabilir düzeydedir. Bir görüntü oluştururken CentOS 7 ile uyumlu paket sürümleri kullanın. Temel görüntüdeki yum kaynağı, Alibaba Cloud CentOS 7 görüntü kaynağını kullanacak şekilde önceden yapılandırılmıştır.
-
Dizin kısıtlamaları:
pip veya yum gibi araçları kullanarak paketleri yüklerken kişisel dosyalarınızı
/home/admin, /usr/local/lib, /usr/ali, /apsaradizinlerine yerleştirmeyin. Bir konteyner başladığında MaxCompute çalışma zamanı ortamını bu dizinlere bağlar ve orijinal içeriklerinin üzerine yazar.
Yordam
1. Adım: Docker'ı yükleme
Linux: Resmi Docker belgelerini izleyerek Docker'ı yükleyin.
-
macOS veya Windows:
Bireysel geliştiriciler: Docker Desktop kullanabilirsiniz.
Docker Desktop lisansı olmayan kurumsal kullanıcılar: Açık kaynaklı Rancher Desktop kullanmanızı öneririz.
2. Adım: İzinleri verme
Aşağıdaki tabloda açıklandığı gibi hesaba veya kullanıcıya RAM rolleri için okuma izni, **ACR için operasyonel izinler ve MaxCompute özel görüntüleri için operasyonel izinler** verin.
|
Kullanım durumu |
Hesap türü |
İzinler |
Referans |
|
RAM rolleri için okuma izni |
Alibaba Cloud hesabı (önerilen) |
Varsayılan olarak bir Alibaba Cloud hesabı RAM rolleri için okuma iznine sahiptir. Yetkilendirme gerekmez. |
Yok |
|
RAM kullanıcısı |
AliyunRAMReadOnlyAccess iznini verin. |
||
|
ACR operasyonel izinleri |
Alibaba Cloud hesabı (önerilen) |
Varsayılan olarak bir Alibaba Cloud hesabı ACR için tüm izinlere sahiptir. Yetkilendirme gerekmez. |
Yok |
|
RAM kullanıcısı |
Bir RAM kullanıcısının ACR'yi yönetebilmesi için AliyunContainerRegistryReadOnlyAccess iznine ihtiyacı vardır. |
||
|
MaxCompute özel görüntü operasyonel izinleri |
Alibaba Cloud hesabı (önerilen) |
Varsayılan olarak bir Alibaba Cloud hesabı MaxCompute'de özel görüntüleri yönetmek için tam izinlere sahiptir. Yetkilendirme gerekmez. |
Yok |
|
RAM kullanıcısı |
Bir RAM kullanıcısının MaxCompute özel görüntüleri yönetebilmesi için iş gereksinimlerinize göre gerekli izinleri verin. |
3. Adım: Özel görüntü oluşturma
Bir MaxCompute temel görüntüsüne dayalı bir Dockerfile kullanarak özel bir görüntü oluşturun.
MaxCompute CentOS temel görüntüsü URL'si şudur:
registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest. Temel görüntü; Python 3.7, Python 3.11, pip ve yum içeren temel bir ortam sağlar.MaxCompute Ubuntu temel görüntüsü adresi şudur:
registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest.
-
Bir MaxCompute temel görüntüsüne dayalı bir Dockerfile oluşturun. Bu komutu çalıştırın:
vim DockerFile -
Dockerfile'a aşağıdaki içeriği ekleyin:
# Use the MaxCompute CentOS base image. FROM registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest # To use the Ubuntu image, replace the image address with registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest. # Install system dependencies. RUN yum install vi -y # Install third-party libraries. RUN /usr/ali/python3.7/bin/python3 -m pip install --no-cache-dir pandas -
Dockerfile'dan görüntüyü oluşturun.
sudo docker build -f DockerFile -t <image_name>:<tag> .Parametreler:
image_name: Özel görüntünün adı.
tag: Özel görüntünün sürümü.
4. Adım: Görüntüyü ACR'ye gönderme
Container Registry konsolunda oturum açın ve sol üst köşeden bir bölge seçin.
Sol gezinme bölmesinde Instances öğesini seçin.
-
Instances sayfasında Create ACR EE öğesine tıklayın. Daha önce bir örnek oluşturduysanız bu adımı atlayabilirsiniz.
ÖnemliÖzel görüntüleri yalnızca ACR Enterprise Edition'ın Standard Edition veya Premium Edition örneklerine yükleyebilirsiniz.
Instances sayfasında hedef enterprise edition örneğini bulun ve örnek genel bakış sayfasını açmak için Manage öğesine tıklayın.
-
Sol gezinme bölmesinde öğesini seçin.
Repository > Repositories sayfasında Create Repository öğesine tıklayın. Create Repository iletişim kutusunda aşağıdaki bilgileri girin ve Next öğesine tıklayın.
Parametre
Gerekli
Açıklama
Region
Evet
Geçerli örneğin bölgesi otomatik olarak doldurulur.
Namespace
Evet
Görüntü deposu için ad alanını tanımlayın. Bu ayar daha sonra değiştirilemez.
-
Bir şirket, kuruluş veya bireysel kullanıcıyla eşleşen bir ad alanı oluşturmanızı öneririz, örneğin
aliyun. -
Bir modül veya sistemle eşleşen bir ad alanı oluşturmanızı önermiyoruz, örneğin
tomcatveyacentos.
Repository Name
Evet
Ad 2 ila 120 karakter uzunluğunda olmalı ve küçük harfler, rakamlar ve şu ayırıcıları içerebilir: alt çizgi (_), kısa çizgi (-), nokta (.) ve eğik çizgi (/). Ad bir ayırıcı ile başlayamaz veya bitemez.
Repository Type
Hayır
-
Public: Genel bir görüntüyü çekmek için Enterprise Edition örneğinde oturum açmanız gerekir. Anonim çekimlere izin vermek istiyorsanız örnek için genel anonim çekim ayarını etkinleştirin.
-
Enterprise Edition'ın özel bir görüntüsünü çekmek için çekme izinlerine sahip bir Enterprise Edition örneğinde oturum açılması gerekir.
-
Varsayılan olarak özeldir.
Tags
Hayır
After selected, all tags other than the latest in the repository cannot be overwritten, ensuring the consistency of the container images.
Accelerated Image
Hayır
After selected, all images in the repository will automatically generate the accelerated images with "_accelerated" suffix
-
Full Mode: Full mode provides a significant acceleration effect. The size of an accelerated image is approximately 130% the size of the original image. The system requires approximately 25 seconds to generate a 1 GB-sized accelerated image. If an accelerated image layer has been generated for an image layer, the system does not generate an accelerated image layer again for the image layer.
-
Index-only Mode (Public Preview): Bu mod, tam modun hızlandırma etkisinin yaklaşık %70'ini sağlar. Hızlandırılmış görüntü, orijinal görüntünün boyutunun yaklaşık %3'ü kadardır. 1 GB'lık bir hızlandırılmış görüntü oluşturmak yaklaşık 3 saniye sürer. Zaten indekslenmiş olan katmanlar yeniden indekslenmez.
Summary
Evet
Max. 100 characters
Description
Hayır
Supports Markdown Format
-
-
Kod kaynağını yapılandırın:
Code Source için Local Repository öğesini seçin ve Create Repository öğesine tıklayın.
Daha fazla bilgi için bkz. Görüntü oluşturmak için bir Enterprise Edition örneği kullanma.
-
Özel görüntüyü aynı hesapta bulunan bir ACR örneğine gönderin.
Repository Repositories sayfasında hedef deponun Actions sütunundaki Manage öğesine tıklayın.
-
Sol gezinme bölmesinde Details öğesini seçin.
Details sayfasının alt kısmındaki Instructions on Images bölümündeki talimatları izleyerek Docker ortamınızdan özel bir görüntüyü Container Registry görüntü deposuna gönderin.
-
(İsteğe bağlı) Makineniz bir VPC'de ise aşağıdaki adımları gerçekleştirin:
Enterprise Edition örneğine bağlanmak için VPC'nin erişim denetimini yapılandırın. Daha fazla bilgi için bkz. VPC üzerinden erişimi yapılandırma.
-
Bir Docker ortamında bir ACR Enterprise Edition örneğiyle çalışırken etki alanı adına vpc eklemeniz gerekir. Örneğin,
acr-test-registry.cn-wulanchabu.cr.aliyuncs.comifadesiniacr-test-registry-vpc.cn-wulanchabu.cr.aliyuncs.comolarak değiştirmeniz gerekir.$ docker login --username=***@test.aliyunid.com acr-test-registry.cn-wulanchabu.cr.aliyuncs.com
NotÖrnekte oturum açarken bir hata oluşursa deponun genel ağ erişiminin etkin olup olmadığını kontrol edin.
5. Adım: Görüntüyü MaxCompute'e ekleme
Geliştirme görüntülerinizi merkezi olarak yönetmek için mevcut bir ACR görüntüsünü MaxCompute ile ilişkilendirin.
MaxCompute konsolunda oturum açın ve sol üst köşeden bir bölge seçin.
Sol taraftaki gezinme bölmesinde öğesini seçin.
Images sayfasında Custom Image sekmesine tıklayın.
-
Custom Image sekmesinde Create Image öğesine tıklayın. Add Image iletişim kutusunda aşağıdaki parametreleri yapılandırın:
Notİlk kez bir görüntü oluşturduğunuzda MaxCompute Service-linked Role iletişim kutusu görünür. OK öğesine tıklayın. Sistem, ACR kaynaklarına erişmek için otomatik olarak bir hizmet bağlantılı rol oluşturur.
Parametre
Açıklama
Image NameGerekli. Özel görüntünün adı. The image name must start with a lowercase letter, and can contain only lowercase letters, digits, hyphens (-), and underscores (_).
Bu ad, MaxCompute SQL, PyODPS ve MaxFrame'de görüntüye başvurmak için kullanılır.
Image Type
Gerekli. ACR görüntüsünün türü. Yalnızca ACR Enterprise Edition görüntüleri desteklenir.
Enterprise Edition Image Instance
Gerekli. ACR'de oluşturduğunuz Enterprise Edition örneğini seçin.
Image Namespace
Gerekli. ACR'de oluşturduğunuz görüntü ad alanını seçin.
Image Repository
Gerekli. ACR'de oluşturduğunuz görüntü deposunu seçin.
Image Version
Gerekli. ACR'ye yüklediğiniz görüntü sürümünü seçin.
Image Description
Gerekli. Görüntü için bir açıklama ekleyin.OK öğesine tıklayın. Yeni özel görüntü, özel görüntü listesinde görünür.
6. Adım: Görüntüyü kullanma
Özel görüntülere MaxCompute SQL UDF'lerinde, PyODPS'te ve MaxFrame'de başvurulabilir.
Her iş yalnızca bir görüntü belirtebilir. Birden fazla görüntü belirtilmesi görüntü çakışmalarına neden olabilir.
-
UDF'ler için görüntüyü ve Python sürümünü belirtmek üzere oturum düzeyindeki bayrakları kullanın. Örnek:
set odps.sql.python.version=cp37; set odps.session.image = <image_name>; -
PyODPS için görüntüyü belirtmek üzere
executeveyapersistyöntemlerininimageparametresini kullanın. Örnek:NotPyODPS'te bir görüntüye başvurmak için PyODPS'i V0.11.5 veya sonraki bir sürüme yükseltmeniz gerekir.
image='<image_name>' -
MaxFrame için iş için görüntüyü belirtmek üzere aşağıdaki yapılandırmayı kullanın:
config.options.sql.settings = { "odps.session.image": "<image_name>" }