Buat endpoint PrivateLink untuk memanggil API model atau aplikasi langsung dari Virtual Private Cloud (VPC). Ini membatasi semua komunikasi ke jaringan internal Alibaba Cloud dan tidak melewati internet.
Cara kerjanya
Setelah Anda membuat endpoint interface di VPC, PrivateLink membangun koneksi pribadi searah antara VPC Anda dan Alibaba Cloud Model Studio. Koneksi ini hanya mengizinkan sumber daya di VPC Anda untuk mengakses Model Studio. Model Studio tidak dapat mengakses sumber daya di VPC Anda.
Ketika sumber daya komputasi di VPC mengakses endpoint, lalu lintas diteruskan ke layanan Model Studio melalui PrivateLink tanpa melewati internet.
Endpoint harus berada di wilayah yang sama dengan layanan Model Studio. Untuk menggunakan VPC di wilayah lain, lihat Akses pribadi lintas wilayah.
Wilayah layanan Model Studio:
Awan publik: Singapura dan Tiongkok (Beijing).
Mengakses API melalui PrivateLink endpoint
Langkah 1: Buat endpoint interface
Cloud publik
Masuk ke Konsol Endpoint.
Jika ini pertama kalinya Anda menggunakan endpoint, ikuti petunjuk di layar untuk mengaktifkan PrivateLink.
Pada tab Interface Endpoint, klik Create Endpoint. Konfigurasikan parameter berikut ini dan gunakan nilai default untuk yang lainnya.
Region: Pilih Singapore or China (Beijing) berdasarkan wilayah layanan Model Studio Anda.
Endpoint Name: Masukkan nama kustom, misalnya, modelstudio-privatelink-endpoint.
Endpoint Type: Pilih Interface Endpoint.
Endpoint Services: Pilih Alibaba Cloud Service. Di kotak pencarian yang muncul, filter dan pilih com.aliyuncs.dashscope.

VPC: Pilih VPC yang akan digunakan. Endpoint akan dibuat di VPC tersebut. Sumber daya di VPC, seperti instance ECS dan kontainer, kemudian dapat mengakses Model Studio melalui endpoint.
Zone and vSwitch: Sebuah elastic network interface (ENI) endpoint akan dibuat di zona yang sesuai dengan vSwitch yang dipilih. Pilih vSwitch di setidaknya dua zona berbeda untuk ketersediaan tinggi. Jika sebuah zona gagal, lalu lintas akan secara otomatis dialihkan ke ENI di zona lain untuk mencegah gangguan layanan.
Security Groups: Pilih grup keamanan untuk dikaitkan dengan ENI endpoint. Pastikan grup keamanan mengizinkan akses masuk pada port 80 (HTTP) dan port 443 (HTTPS).
Klik Create untuk menyelesaikan proses.
Langkah 2: Dapatkan nama domain
Cloud publik
Setelah Anda membuat endpoint interface, peroleh nama domain layanan dari halaman detail endpoint interface.
Default Domain Name hanya mendukung protokol HTTP. Custom Domain Name mendukung baik HTTP maupun HTTPS.

Langkah 3: Verifikasi akses
Ganti nama domain di base_url Model Studio dengan nama domain yang Anda dapatkan di langkah sebelumnya. Kemudian, buat panggilan dari VPC yang sesuai.
Cloud publik
Contoh berikut menunjukkan cara memanggil Model teks Qwen di wilayah Singapura dalam mode kompatibel OpenAI:
Sebelum penggantian:
https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completionsSetelah penggantian:
Nama domain layanan default:
<u>http://ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com</u>/compatible-mode/v1/chat/completionsNama domain layanan kustom:
https://<u>vpc-ap-southeast-1.dashscope.aliyuncs.com</u>/compatible-mode/v1/chat/completions
Contoh panggilan:
HTTP
# Ganti nama domain asli dengan nama domain yang Anda dapatkan di langkah sebelumnya.
curl -X POST http://ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-flash",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
]
}'OpenAI Python SDK
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Ganti nama domain asli dengan nama domain yang Anda dapatkan di langkah sebelumnya.
base_url="http://ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-flash",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Who are you?'}],
)
print(completion.model_dump_json())
DashScope Python SDK
import os
from http import HTTPStatus
# Kami merekomendasikan Anda menggunakan DashScope SDK V1.14.0 atau lebih baru.
import dashscope
from dashscope import Generation
# Ganti nama domain asli dengan nama domain yang Anda dapatkan di langkah sebelumnya.
dashscope.base_http_api_url = "http://ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com/api/v1"
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{
'role': 'user', 'content': 'Who are you?'
}]
response = Generation.call(
model="qwen-flash",
messages=messages,
result_format='message'
)
if response.status_code == HTTPStatus.OK:
print(response)
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))
DashScope Java SDK
// Kami merekomendasikan Anda menggunakan DashScope SDK V2.12.0 atau lebih baru.
import java.util.Arrays;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
// Ganti nama domain asli dengan nama domain yang Anda dapatkan di langkah sebelumnya.
Generation gen = new Generation(Protocol.HTTP.getValue(), "http://ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com/api/v1");
Message systemMsg = Message.builder()
.role(Role.SYSTEM.getValue())
.content("You are a helpful assistant.")
.build();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("Who are you?")
.build();
GenerationParam param = GenerationParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen-flash")
.messages(Arrays.asList(systemMsg, userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
GenerationResult result = callWithMessage();
System.out.println(JsonUtils.toJson(result));
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
// Cetak pesan kesalahan.
System.err.println("An error occurred while calling the generation service: " + e.getMessage());
}
}
}Sebelum Anda membuat panggilan, buat dan ekspor kunci API. Untuk melewati kunci API secara langsung, ganti $DASHSCOPE_API_KEY dengan kunci API Anda.Akses pribadi lintas wilayah
Pada langkah-langkah sebelumnya, Anda telah mengakses Model Studio dari endpoint di wilayah yang sama. Namun, jika VPC Anda berada di wilayah lain, selesaikan langkah-langkah berikut:
Ikuti bagian sebelumnya untuk membuat endpoint PrivateLink.
Gunakan Cloud Enterprise Network (CEN) untuk menghubungkan VPC di wilayah yang berbeda. Perhatikan hal-hal berikut:
Pilih VPC dengan blok CIDR yang tidak tumpang tindih untuk mencegah kegagalan akibat konflik blok CIDR.
Untuk menghubungkan VPC antara Daratan Tiongkok dan wilayah luar negeri, akun Anda harus lolos verifikasi identitas perusahaan.
Dalam grup keamanan yang terkait dengan endpoint PrivateLink, tambahkan aturan masuk untuk mengizinkan lalu lintas dari VPC peminta pada Port 80 dan 443.
Setelah konfigurasi selesai, ketika Anda mengakses nama domain layanan default dari endpoint VPC peminta, Router transit (TR) akan merutekan lalu lintas ke endpoint di wilayah layanan Model Studio.
Secara default, nama domain default dapat diakses langsung dari VPC yang saling terhubung di berbagai wilayah. Namun, nama domain layanan kustom hanya valid dalam VPC di wilayah yang sama. Untuk menggunakan nama domain kustom, buat zona otoritatif yang sama dengan nama domain kustom, lalu arahkan ke nama domain default menggunakan rekaman CNAME:
Tambahkan zona otoritatif yang sama dengan nama domain kustom, seperti
vpc-ap-southeast-1.dashscope.aliyuncs.com. Untuk bagian Cakupan Efektif, pilih VPC peminta.Untuk menambahkan rekaman DNS, atur Jenis Rekaman ke CNAME, Nama Host ke
@, dan Nilai Rekaman ke nama domain default. Sebagai contoh:<u>ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com</u>.
Setelah konfigurasi selesai, Anda dapat mengakses API Model Studio dari VPC peminta menggunakan nama domain kustom.
Penagihan
Menggunakan PrivateLink, CEN, dan Private Zone dapat menimbulkan biaya tambahan:
FAQ
Mengapa instance ECS saya tidak dapat mengakses API Model Studio menggunakan PrivateLink?
Ikuti langkah-langkah berikut untuk memecahkan masalah:
Pastikan bahwa instance ECS dan titik akhir berada di dalam VPC yang sama.
Jika instance ECS dan endpoint berada di VPC yang berbeda, hubungkan VPC-nya terlebih dahulu.
Periksa grup keamanan yang terkait dengan endpoint. Pastikan aturan masuk telah ditambahkan untuk mengizinkan lalu lintas dari blok CIDR instance ECS sumber pada port 80 (HTTP) atau 443 (HTTPS).
Periksa nama domain.
Nama domain default hanya mendukung HTTP.
Apakah titik akhir dapat diakses dari internet?
Tidak. PrivateLink hanya digunakan untuk membangun koneksi privat di dalam jaringan internal Alibaba Cloud. Endpoint tidak memiliki akses internet, dan ENI endpoint tidak dapat dikaitkan dengan elastic IP addresses (EIPs).