Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan titik akhir multi-kontainer dengan pemanggilan langsung
SageMaker titik akhir multi-kontainer memungkinkan pelanggan untuk menerapkan beberapa kontainer untuk menerapkan model yang berbeda pada titik akhir. SageMaker Anda dapat meng-host hingga 15 kontainer inferensi yang berbeda pada satu titik akhir. Dengan menggunakan pemanggilan langsung, Anda dapat mengirim permintaan ke wadah inferensi tertentu yang dihosting pada titik akhir multi-kontainer.
Topik
Memanggil titik akhir multi-kontainer dengan pemanggilan langsung
Untuk memanggil titik akhir multi-kontainer dengan pemanggilan langsung, panggil invoke_endpoint karena Anda akan memanggil titik akhirTargetContainerHostname
Contoh berikut secara langsung memanggil titik akhir multi-kontainer untuk mendapatkan prediksi. secondContainer
import boto3 runtime_sm_client = boto3.Session().client('sagemaker-runtime') response = runtime_sm_client.invoke_endpoint( EndpointName ='my-endpoint', ContentType = 'text/csv', TargetContainerHostname='secondContainer', Body = body)
Untuk setiap permintaan pemanggilan langsung ke titik akhir multi-kontainer, hanya wadah yang TargetContainerHostname
memproses permintaan pemanggilan. Anda akan mendapatkan kesalahan validasi jika Anda melakukan salah satu dari berikut:
-
Tentukan
TargetContainerHostname
yang tidak ada di titik akhir -
Jangan tentukan nilai untuk
TargetContainerHostname
permintaan ke titik akhir yang dikonfigurasi untuk pemanggilan langsung -
Tentukan nilai untuk
TargetContainerHostname
permintaan ke titik akhir yang tidak dikonfigurasi untuk pemanggilan langsung.
Keamanan dengan titik akhir multi-kontainer dengan pemanggilan langsung
Untuk titik akhir multi-kontainer dengan pemanggilan langsung, ada beberapa kontainer yang dihosting dalam satu instance dengan berbagi memori dan volume penyimpanan. Anda bertanggung jawab untuk menggunakan kontainer yang aman, memelihara pemetaan permintaan yang benar untuk menargetkan kontainer, dan memberi pengguna akses yang benar ke kontainer target. SageMakermenggunakan peran IAM untuk memberikan kebijakan berbasis identitas IAM yang Anda gunakan untuk menentukan apakah akses ke sumber daya diizinkan atau ditolak untuk peran itu, dan dalam kondisi apa. Untuk informasi tentang peran IAM, lihat peran IAM di AWS Identity and Access Management Panduan Pengguna. Untuk informasi tentang kebijakan berbasis identitas, lihat Kebijakan berbasis identitas dan kebijakan berbasis sumber daya.
Secara default, prinsipal IAM dengan InvokeEndpoint
izin pada titik akhir multi-kontainer dengan pemanggilan langsung dapat memanggil penampung apa pun di dalam titik akhir dengan nama titik akhir yang Anda tentukan saat Anda memanggil. invoke_endpoint
Jika Anda perlu membatasi invoke_endpoint
akses ke kumpulan kontainer terbatas di dalam titik akhir multi-kontainer, gunakan kunci kondisi sagemaker:TargetContainerHostname
IAM. Kebijakan berikut menunjukkan cara membatasi panggilan ke kontainer tertentu dalam titik akhir.
Kebijakan berikut hanya mengizinkan invoke_endpoint
permintaan jika nilai TargetContainerHostname
bidang cocok dengan salah satu ekspresi reguler yang ditentukan.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sagemaker:InvokeEndpoint" ], "Effect": "Allow", "Resource": "arn:aws:sagemaker:
region
:account-id
:endpoint/endpoint_name
", "Condition": { "StringLike": { "sagemaker:TargetContainerHostname": ["customIps*", "common*"] } } } ] }
Kebijakan berikut menolak invoke_endpoint
permintaan jika nilai TargetContainerHostname
bidang cocok dengan salah satu ekspresi reguler yang ditentukan dalam Deny
pernyataan.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sagemaker:InvokeEndpoint" ], "Effect": "Allow", "Resource": "arn:aws:sagemaker:
region
:account-id
:endpoint/endpoint_name
", "Condition": { "StringLike": { "sagemaker:TargetContainerHostname": ["*"] } } }, { "Action": [ "sagemaker:InvokeEndpoint" ], "Effect": "Deny", "Resource": "arn:aws:sagemaker:region
:account-id
:endpoint/endpoint_name
", "Condition": { "StringLike": { "sagemaker:TargetContainerHostname": ["special*"] } } } ] }
Untuk informasi tentang kunci SageMaker kondisi, lihat Condition Keys untuk SageMaker di Panduan AWS Identity and Access Management Pengguna.
Metrik untuk titik akhir multi-kontainer dengan pemanggilan langsung
Selain metrik titik akhir yang tercantum, SageMaker juga menyediakan metrik per Pantau Amazon SageMaker dengan Amazon CloudWatch kontainer.
Metrik per kontainer untuk titik akhir multi-kontainer dengan pemanggilan langsung ditempatkan dan dikategorikan ke dalam dua ruang nama: CloudWatch dan. AWS/SageMaker
aws/sagemaker/Endpoints
AWS/SageMaker
Namespace mencakup metrik terkait pemanggilan, dan aws/sagemaker/Endpoints
namespace mencakup metrik pemanfaatan memori dan CPU.
Tabel berikut mencantumkan metrik per kontainer untuk titik akhir multi-kontainer dengan pemanggilan langsung. Semua metrik menggunakan dimensi [EndpointName, VariantName,
ContainerName
], yang memfilter metrik pada titik akhir tertentu, untuk varian tertentu dan sesuai dengan wadah tertentu. Metrik ini memiliki nama metrik yang sama seperti pada pipeline inferensi, tetapi pada tingkat per kontainer []. EndpointName, VariantName, ContainerName
Nama Metrik | Deskripsi | Dimensi | NameSpace |
Invocations
|
Jumlah InvokeEndpoint permintaan yang dikirim ke kontainer di dalam titik akhir. Untuk mendapatkan jumlah total permintaan yang dikirim ke wadah itu, gunakan Sum statistik. Unit: Tidak Ada Statistik yang valid:Sum , Sample Count |
EndpointName , VariantName ,
ContainerName
|
AWS/SageMaker |
Invocation4XX Errors
|
Jumlah InvokeEndpoint permintaan yang dikembalikan model kode respons 4xx HTTP pada wadah tertentu. Untuk setiap 4xx tanggapan, SageMaker kirimkan a1 . Unit: Tidak Ada Statistik yang valid:Average , Sum |
EndpointName , VariantName ,
ContainerName
|
AWS/SageMaker |
Invocation5XX Errors
|
Jumlah InvokeEndpoint permintaan yang dikembalikan model kode respons 5xx HTTP pada wadah tertentu. Untuk setiap 5xx tanggapan, SageMaker kirimkan a1 . Unit: Tidak Ada Statistik yang valid:Average , Sum |
EndpointName , VariantName ,
ContainerName
|
AWS/SageMaker |
ContainerLatency
|
Waktu yang dibutuhkan wadah target untuk merespons seperti yang dilihat dari SageMaker. ContainerLatency termasuk waktu yang dibutuhkan untuk mengirim permintaan, untuk mengambil respons dari wadah model, dan untuk menyelesaikan inferensi dalam wadah. Unit: Mikrodetik Statistik yang valid:Average ,,Sum ,Min , Max Sample Count |
EndpointName , VariantName ,
ContainerName
|
AWS/SageMaker |
OverheadLatency
|
Waktu ditambahkan ke waktu yang dibutuhkan untuk menanggapi permintaan klien dengan biaya SageMaker overhead. OverheadLatency diukur dari waktu yang SageMaker menerima permintaan hingga mengembalikan respons ke klien, dikurangiModelLatency . Latensi overhead dapat bervariasi tergantung pada ukuran payload permintaan dan respons, frekuensi permintaan, dan otentikasi atau otorisasi permintaan, di antara faktor-faktor lainnya. Unit: Mikrodetik Statistik yang valid:Average ,, Sum Min Max , `Jumlah Sampel ` |
EndpointName , VariantName ,
ContainerName
|
AWS/SageMaker |
CPUUtilization
|
Persentase unit CPU yang digunakan oleh setiap kontainer yang berjalan pada sebuah instance. Nilainya berkisar dari 0% hingga 100%, dan dikalikan dengan jumlah CPU. Misalnya, jika ada empat CPU, CPUUtilization dapat berkisar dari 0% hingga 400%. Untuk titik akhir dengan pemanggilan langsung, jumlah metrik CPUUutilization sama dengan jumlah kontainer di titik akhir tersebut. Unit: Persen |
EndpointName , VariantName ,
ContainerName
|
aws/sagemaker/Endpoints |
MemoryUtilizaton
|
Persentase memori yang digunakan oleh setiap kontainer yang berjalan pada sebuah instance. Nilai ini berkisar dari 0% hingga 100%. Mirip dengan CPUUutilization, di titik akhir dengan pemanggilan langsung, jumlah MemoryUtilization metrik sama dengan jumlah kontainer di titik akhir tersebut. Unit: Persen |
EndpointName , VariantName ,
ContainerName
|
aws/sagemaker/Endpoints |
Semua metrik di tabel sebelumnya khusus untuk titik akhir multi-kontainer dengan pemanggilan langsung. Selain metrik per-kontainer khusus ini, ada juga metrik pada tingkat varian dengan dimensi [EndpointName, VariantName]
untuk semua metrik dalam tabel yang diharapkan. ContainerLatency
Titik akhir multi-kontainer skala otomatis
Jika Anda ingin mengonfigurasi penskalaan otomatis untuk titik akhir multi-kontainer menggunakan InvocationsPerInstance
metrik, kami menyarankan agar model di setiap kontainer menunjukkan pemanfaatan dan latensi CPU yang serupa pada setiap permintaan inferensi. Ini direkomendasikan karena jika lalu lintas ke titik akhir multi-kontainer bergeser dari model pemanfaatan CPU rendah ke model pemanfaatan CPU yang tinggi, tetapi volume panggilan keseluruhan tetap sama, titik akhir tidak skala dan mungkin tidak ada cukup contoh untuk menangani semua permintaan ke model pemanfaatan CPU tinggi. Untuk informasi tentang penskalaan titik akhir secara otomatis, lihat. Secara Otomatis Menskalakan SageMaker Model Amazon
Memecahkan masalah titik akhir multi-kontainer
Bagian berikut dapat membantu Anda memecahkan masalah kesalahan dengan titik akhir multi-kontainer.
Kesalahan Pemeriksaan Kesehatan Ping
Dengan beberapa kontainer, memori endpoint dan CPU berada di bawah tekanan yang lebih tinggi selama pembuatan endpoint. Secara khusus, CPUUtilization
metrik MemoryUtilization
dan lebih tinggi daripada titik akhir kontainer tunggal, karena tekanan pemanfaatan sebanding dengan jumlah kontainer. Karena itu, kami menyarankan Anda memilih jenis instance dengan memori dan CPU yang cukup untuk memastikan bahwa ada cukup memori pada instance agar semua model dimuat (panduan yang sama berlaku untuk menerapkan pipeline inferensi). Jika tidak, pembuatan titik akhir Anda mungkin gagal dengan kesalahan sepertiXXX did not pass the
ping health check
.
Hilang accept-bind-to-port =true label Docker
Kontainer dalam titik akhir multi-kontainer mendengarkan pada port yang ditentukan dalam variabel SAGEMAKER_BIND_TO_PORT
lingkungan, bukan port 8080. Ketika sebuah kontainer berjalan di titik akhir multi-kontainer, SageMaker secara otomatis menyediakan variabel lingkungan ini ke wadah. Jika variabel lingkungan ini tidak ada, kontainer default menggunakan port 8080. Untuk menunjukkan bahwa kontainer Anda mematuhi persyaratan ini, gunakan perintah berikut untuk menambahkan label ke Dockerfile Anda:
LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true
Jika tidak, Anda akan melihat pesan kesalahan seperti Your Ecr Image XXX does
not contain required
com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true Docker
label(s).
Jika kontainer Anda perlu mendengarkan pada port kedua, pilih port dalam rentang yang ditentukan oleh variabel SAGEMAKER_SAFE_PORT_RANGE
lingkungan. Tentukan nilai sebagai rentang inklusif dalam format XXXX - YYYY, di mana XXXX
dan YYYY
adalah bilangan bulat multi-digit. SageMaker memberikan nilai ini secara otomatis saat Anda menjalankan wadah di titik akhir multi-kontainer.