Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan Private Docker Registry untuk Wadah Inferensi Real-Time
SageMaker Hosting Amazon memungkinkan Anda menggunakan gambar yang disimpan di Amazon ECR untuk membuat kontainer Anda untuk inferensi waktu nyata secara default. Secara opsional, Anda dapat membangun kontainer untuk inferensi real-time dari gambar di registri Docker pribadi. Registri pribadi harus dapat diakses dari VPC Amazon di akun Anda. Model yang Anda buat berdasarkan gambar yang disimpan di registri Docker pribadi Anda harus dikonfigurasi untuk terhubung ke VPC yang sama di mana registri Docker pribadi dapat diakses. Untuk informasi tentang menghubungkan model Anda ke VPC, lihat. Berikan Akses Endpoint yang SageMaker Dihosting ke Sumber Daya di Amazon Anda VPC
Registri Docker Anda harus diamankan dengan sertifikat TLS dari otoritas sertifikat publik (CA) yang dikenal.
catatan
Registri Docker pribadi Anda harus mengizinkan lalu lintas masuk dari grup keamanan yang Anda tentukan dalam konfigurasi VPC untuk model Anda, sehingga SageMaker hosting dapat menarik gambar model dari registri Anda.
SageMaker dapat menarik gambar model dari DockerHub jika ada jalur ke internet terbuka di dalam VPC Anda.
Topik
- Simpan Gambar di Private Docker Registry selain Amazon Elastic Container Registry
- Gunakan Gambar dari Private Docker Registry untuk Inferensi Real-time
- Izinkan SageMaker untuk mengautentikasi ke registri Docker pribadi
- Buat fungsi Lambda
- Berikan izin peran eksekusi Anda ke Lambda
- Buat titik akhir VPC antarmuka untuk Lambda
Simpan Gambar di Private Docker Registry selain Amazon Elastic Container Registry
Untuk menggunakan registri Docker pribadi untuk menyimpan gambar Anda untuk inferensi SageMaker waktu nyata, buat registri pribadi yang dapat diakses dari VPC Amazon Anda. Untuk informasi tentang membuat registri Docker, lihat Menerapkan server registri
-
Registri harus berupa registri Docker Registry HTTP API V2
. -
Registri Docker harus dapat diakses dari VPC yang sama yang Anda tentukan dalam parameter
VpcConfig
yang Anda tentukan saat Anda membuat model.
Gunakan Gambar dari Private Docker Registry untuk Inferensi Real-time
Saat Anda membuat model dan menerapkannya ke SageMaker hosting, Anda dapat menentukan bahwa ia menggunakan gambar dari registri Docker pribadi Anda untuk membangun wadah inferensi. Tentukan ini dalam ImageConfig
objek dalam PrimaryContainer
parameter yang Anda berikan ke panggilan ke fungsi create_model
Untuk menggunakan gambar yang disimpan di registri Docker pribadi Anda untuk wadah inferensi Anda
-
Buat objek konfigurasi gambar dan tentukan nilai
Vpc
untukRepositoryAccessMode
bidang.image_config = { 'RepositoryAccessMode': 'Vpc' }
-
Jika registri Docker pribadi Anda memerlukan otentikasi, tambahkan
RepositoryAuthConfig
objek ke objek konfigurasi gambar. UntukRepositoryCredentialsProviderArn
bidangRepositoryAuthConfig
objek, tentukan Nama Sumber Daya Amazon (ARN) dari AWS Lambda fungsi yang menyediakan kredensyal yang memungkinkan SageMaker untuk mengautentikasi ke Docker Registry pribadi Anda. Untuk informasi tentang cara membuat fungsi Lambda untuk menyediakan otentikasi, lihat. Izinkan SageMaker untuk mengautentikasi ke registri Docker pribadiimage_config = { 'RepositoryAccessMode': 'Vpc', 'RepositoryAuthConfig': { 'RepositoryCredentialsProviderArn': 'arn:aws:lambda:
Region
:Acct
:function:FunctionName
' } } -
Buat objek kontainer utama yang ingin Anda lewati
create_model
, menggunakan objek konfigurasi gambar yang Anda buat pada langkah sebelumnya.Berikan gambar Anda dalam bentuk intisari
. Jika Anda memberikan gambar Anda menggunakan :latest
tag, ada risiko yang SageMaker menarik versi gambar yang lebih baru daripada yang dimaksudkan. Menggunakan formulir intisari memastikan bahwa SageMaker menarik versi gambar yang dimaksud.primary_container = { 'ContainerHostname': 'ModelContainer', 'Image': 'myteam.myorg.com/docker-local/my-inference-image:
<IMAGE-TAG>
', 'ImageConfig': image_config } -
Tentukan nama model dan peran eksekusi yang ingin Anda berikan
create_model
.model_name = 'vpc-model' execution_role_arn = 'arn:aws:iam::123456789012:role/SageMakerExecutionRole'
-
Tentukan satu atau beberapa grup keamanan dan subnet untuk konfigurasi VPC untuk model Anda. Registri Docker pribadi Anda harus mengizinkan lalu lintas masuk dari grup keamanan yang Anda tentukan. Subnet yang Anda tentukan harus dalam VPC yang sama dengan registri Docker pribadi Anda.
vpc_config = { 'SecurityGroupIds': ['sg-0123456789abcdef0'], 'Subnets': ['subnet-0123456789abcdef0','subnet-0123456789abcdef1'] }
-
Dapatkan klien Boto3 SageMaker .
import boto3 sm = boto3.client('sagemaker')
-
Buat model dengan memanggil
create_model
, menggunakan nilai yang Anda tentukan dalam langkah sebelumnya untukVpcConfig
parameterPrimaryContainer
dan.try: resp = sm.create_model( ModelName=model_name, PrimaryContainer=primary_container, ExecutionRoleArn=execution_role_arn, VpcConfig=vpc_config, ) except Exception as e: print(f'error calling CreateModel operation: {e}') else: print(resp)
-
Terakhir, panggil create_endpoint_config dan create_endpoint
untuk membuat endpoint hosting, menggunakan model yang Anda buat pada langkah sebelumnya. endpoint_config_name = 'my-endpoint-config' sm.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[ { 'VariantName': 'MyVariant', 'ModelName': model_name, 'InitialInstanceCount': 1, 'InstanceType': 'ml.t2.medium' }, ], ) endpoint_name = 'my-endpoint' sm.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name, ) sm.describe_endpoint(EndpointName=endpoint_name)
Izinkan SageMaker untuk mengautentikasi ke registri Docker pribadi
Untuk menarik gambar inferensi dari registri Docker pribadi yang memerlukan autentikasi, buat AWS Lambda fungsi yang menyediakan kredensyal, dan berikan Nama Sumber Daya Amazon (ARN) fungsi Lambda saat Anda memanggil create_model.create_model
, ia memanggil fungsi Lambda yang Anda tentukan untuk mendapatkan kredensyal untuk diautentikasi ke registri Docker Anda.
Buat fungsi Lambda
Buat AWS Lambda fungsi yang mengembalikan respons dengan formulir berikut:
def handler(event, context): response = { "Credentials": {"Username": "
username
", "Password": "password
"} } return response
Bergantung pada cara Anda mengatur otentikasi untuk registri Docker pribadi Anda, kredensyal yang dikembalikan oleh fungsi Lambda Anda dapat berarti salah satu dari yang berikut:
-
Jika Anda mengatur registri Docker pribadi Anda untuk menggunakan otentikasi dasar, berikan kredensyal masuk untuk mengautentikasi ke registri.
-
Jika Anda mengatur registri Docker pribadi Anda untuk menggunakan otentikasi token pembawa, kredensyal masuk dikirim ke server otorisasi Anda, yang mengembalikan token Bearer yang kemudian dapat digunakan untuk mengautentikasi ke registri Docker pribadi.
Berikan izin peran eksekusi Anda ke Lambda
Peran eksekusi yang Anda gunakan untuk memanggil create_model
harus memiliki izin untuk memanggil AWS Lambda fungsi. Tambahkan yang berikut ini ke kebijakan izin peran eksekusi Anda.
{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*
myLambdaFunction
*" ] }
Di myLambdaFunctionmana nama fungsi Lambda Anda. Untuk informasi tentang mengedit kebijakan izin peran, lihat Memodifikasi kebijakan izin peran (konsol) di Panduan Pengguna.AWS Identity and Access Management
catatan
Peran eksekusi dengan kebijakan AmazonSageMakerFullAccess
terkelola yang dilampirkan padanya memiliki izin untuk memanggil fungsi Lambda apa pun dengan SageMakernamanya.
Buat titik akhir VPC antarmuka untuk Lambda
Buat titik akhir antarmuka sehingga VPC Amazon Anda dapat berkomunikasi dengan fungsi AWS Lambda Anda tanpa mengirim lalu lintas melalui internet. Untuk informasi tentang cara melakukannya, lihat Mengonfigurasi titik akhir VPC antarmuka untukAWS Lambda Lambda di Panduan Pengembang.
SageMaker hosting mengirimkan permintaan melalui VPC Anda kelambda.
, untuk memanggil fungsi Lambda Anda. Jika Anda memilih Nama DNS Pribadi saat membuat titik akhir antarmuka, Amazon Route 53 merutekan panggilan ke titik akhir antarmuka Lambda. Jika Anda menggunakan penyedia DNS yang berbeda, pastikan untuk memetakan region
.amazonaws.com.rproxy.goskope.comlambda.
ke titik akhir antarmuka Lambda Anda.region
.amazonaws.com