Buat titik akhir PrivateLink untuk memanggil API model atau aplikasi langsung dari virtual private cloud (VPC). Seluruh komunikasi dibatasi hanya pada jaringan internal Alibaba Cloud dan tidak melewati internet.
Cara kerja
Setelah Anda membuat titik akhir antarmuka di VPC, PrivateLink akan menetapkan koneksi pribadi unidireksional antara VPC Anda dan Alibaba Cloud Model Studio. Koneksi ini hanya mengizinkan sumber daya di VPC Anda mengakses Model Studio; Model Studio tidak dapat mengakses sumber daya di VPC Anda.
Ketika sumber daya komputasi di VPC mengakses titik akhir tersebut, lalu lintas diteruskan ke layanan Model Studio melalui PrivateLink tanpa melewati internet.
Titik akhir harus berada di wilayah yang sama dengan layanan Model Studio. Untuk menggunakan VPC di wilayah lain, lihat Akses pribadi cross-region.
Wilayah layanan Model Studio:
Public cloud: Singapura dan China (Beijing).
Akses API melalui titik akhir PrivateLink
Langkah 1: Buat titik akhir antarmuka
Public cloud
Masuk ke Endpoint console.
Jika ini pertama kalinya Anda menggunakan titik akhir, ikuti petunjuk di layar untuk mengaktifkan PrivateLink.
Pada tab Interface Endpoint, klik Create Endpoint. Konfigurasikan parameter berikut dan gunakan nilai default untuk parameter 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 Service: Pilih Alibaba Cloud Service. Pada kotak pencarian yang muncul, filter dan pilih com.aliyuncs.dashscope.

VPC: Pilih VPC yang akan digunakan. Titik akhir akan dibuat di VPC tersebut. Sumber daya di VPC, seperti Instance ECS dan kontainer, kemudian dapat mengakses Model Studio melalui titik akhir ini.
Zone and vSwitch: Antarmuka jaringan endpoint elastic network interface (ENI) akan dibuat di zona yang sesuai dengan vSwitch yang dipilih. Pilih vSwitch di minimal dua zona berbeda untuk ketersediaan tinggi. Jika suatu zona gagal, lalu lintas akan secara otomatis dialihkan ke ENI di zona lain untuk mencegah gangguan layanan.
Security Groups: Pilih security group untuk dikaitkan dengan ENI titik akhir. Pastikan security group mengizinkan akses inbound pada port 80 (HTTP) dan port 443 (HTTPS).
Klik Create untuk menyelesaikan proses.
Langkah 2: Dapatkan nama domain
Public cloud
Setelah membuat titik akhir antarmuka, peroleh nama domain layanan dari halaman detail titik akhir antarmuka tersebut.
Default Domain Name hanya mendukung protokol HTTP. Custom Domain Name mendukung HTTP dan HTTPS.

Langkah 3: Verifikasi akses
Ganti nama domain di base_url Model Studio dengan nama domain yang Anda peroleh pada langkah sebelumnya. Kemudian, lakukan panggilan dari VPC yang sesuai.
Public cloud
Contoh berikut menunjukkan cara memanggil model teks Qwen di wilayah Singapura dalam mode Kompatibel dengan 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 peroleh pada 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 peroleh pada 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 menyarankan Anda menggunakan DashScope SDK V1.14.0 atau yang lebih baru.
import dashscope
from dashscope import Generation
# Ganti nama domain asli dengan nama domain yang Anda peroleh pada 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 menyarankan Anda menggunakan DashScope SDK V2.12.0 atau yang 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 peroleh pada 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 melakukan panggilan, buat dan ekspor kunci API. Untuk meneruskan kunci API secara langsung, ganti $DASHSCOPE_API_KEY dengan kunci API Anda.Akses pribadi cross-region
Pada langkah-langkah sebelumnya, Anda telah mengakses Model Studio dari titik akhir di wilayah yang sama. Namun jika VPC Anda berada di wilayah lain, lakukan langkah-langkah berikut:
Ikuti bagian sebelumnya untuk membuat titik akhir PrivateLink.
Gunakan Cloud Enterprise Network (CEN) untuk menghubungkan VPC di wilayah berbeda. Perhatikan 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 lulus verifikasi identitas perusahaan.
Pada security group yang dikaitkan dengan titik akhir 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 titik akhir dari VPC peminta, Router transit (TR) akan mengarahkan lalu lintas ke titik akhir di wilayah layanan Model Studio.
Secara default, nama domain default dapat diakses langsung dari VPC yang saling terhubung lintas wilayah. Namun, nama domain layanan kustom hanya berlaku 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. Pada bagian Effective Scope, pilih VPC peminta.Untuk menambahkan Rekaman DNS, atur Record Type ke CNAME, Hostname ke
@, dan Record Value ke nama domain default. Contohnya:<u>ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com</u>.Catatan: Saat mengonfigurasi resolusi nama domain internal, jangan gunakan garis bawah (_) pada catatan host atau nama domain lengkap karena hal ini dapat menyebabkan panggilan API gagal. Nama domain hanya boleh berisi huruf, angka, dan tanda hubung (-). Misalnya, gunakan
test-for-dns.dashscope.aliyuncs.comalih-alihtest_for_dns.dashscope.aliyuncs.com.
Setelah konfigurasi selesai, Anda dapat mengakses API Model Studio dari VPC peminta menggunakan nama domain kustom.
Penagihan
Penggunaan 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 pemecahan masalah:
Pastikan Instance ECS dan titik akhir berada di VPC yang sama.
Jika Instance ECS dan titik akhir berada di VPC berbeda, hubungkan VPC tersebut terlebih dahulu.
Periksa security group yang dikaitkan dengan titik akhir. Pastikan aturan masuk telah ditambahkan untuk mengizinkan lalu lintas dari blok CIDR Instance ECS sumber pada port 80 (HTTP) atau 443 (HTTPS).
Pastikan nama domain.
Nama domain default hanya mendukung HTTP.
Apakah titik akhir dapat diakses dari internet?
Tidak. PrivateLink hanya digunakan untuk menetapkan koneksi pribadi dalam jaringan internal Alibaba Cloud. Titik akhir tidak memiliki akses internet, dan ENI titik akhir tidak dapat dikaitkan dengan elastic IP addresses (EIPs).
Mengapa saya menerima kesalahan saat memanggil model menggunakan nama domain kustom saya dengan resolusi nama domain internal?
Masalah ini biasanya terjadi karena catatan host (atau nama domain lengkap) yang digunakan untuk resolusi nama domain internal mengandung karakter tidak valid, seperti garis bawah (_). Nama domain hanya boleh berisi huruf, angka, dan tanda hubung (-).
Konfigurasikan Rekaman DNS sebagai berikut:
Zona otoritatif: Tambahkan Rekaman DNS untuk zona otoritatif
dashscope.aliyuncs.com.Catatan host: Atur Record Type ke CNAME, dan masukkan awalan nama domain kustom Anda, seperti
test-for-dns-right. Catatan: Catatan host tidak boleh mengandung garis bawah (_).Contoh benar
Contoh salah


Nilai rekaman: Masukkan nama domain layanan default titik akhir Model Studio. Contohnya:
<u>ep-***.dashscope.ap-southeast-1.privatelink.aliyuncs.com</u>.
Setelah konfigurasi selesai, Anda dapat memanggil model menggunakan
https://test-for-dns-right.dashscope.aliyuncs.com/api/v1. Untuk mode kompatibel OpenAI, gunakanhttps://test-for-dns-right.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions.Menggunakan nama domain dengan garis bawah, seperti
https://test_for_dns_wrong.dashscope.aliyuncs.com/api/v1, akan menyebabkan kesalahan.