Server ApsaraVideo for Short Video menangani pertukaran data dengan aplikasi klien dan ApsaraVideo VOD, memproses logika bisnis, serta mengelola data operasional. Topik ini menjelaskan proses integrasi sisi server.
Prasyarat
-
Akun Alibaba Cloud telah dibuat dan verifikasi identitas telah selesai. Untuk membuat Akun Alibaba Cloud, kunjungi situs resmi Alibaba Cloud. Untuk informasi lebih lanjut, lihat Buat Akun Alibaba Cloud.
-
Anda telah mengaktifkan ECS dan menyelesaikan konfigurasi yang diperlukan. Untuk informasi lebih lanjut, lihat Aktifkan dan konfigurasi ECS.
-
Anda telah menginstal JDK 8 pada instans ECS Anda.
-
Anda telah menginstal database MySQL 5.7 pada instans ECS Anda. Untuk informasi lebih lanjut, lihat Instal dan konfigurasi database MySQL. Setelah layanan Anda berjalan, gunakan ApsaraDB RDS untuk stabilitas dan performa yang lebih baik. Untuk informasi lebih lanjut, lihat ApsaraDB RDS.
-
Anda telah mengaktifkan ApsaraVideo VOD dan mengonfigurasi templat yang diperlukan di Konsol. Untuk informasi lebih lanjut, lihat Aktifkan dan konfigurasi ApsaraVideo VOD.
Prosedur
Unggah kode sumber
-
Unduh kode sumber AppServer dan konsol manajemen ApsaraVideo for Short Video. Untuk tautan unduhan, lihat ApsaraVideo for Short Video.
-
Pada server tempat file sumber disimpan, jalankan perintah berikut untuk mengunggah paket kode sumber ke instans ECS.
scp <source_code_file> user@<ECS_instance_IP>:<destination_path>
scp ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip user@10.0.0.0:/home/user/workspace/
ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip adalah file kode sumber, user adalah username instans ECS, 10.0.0.0 adalah alamat IP instans ECS, dan /home/user/workspace/ adalah path unggah.
CatatanFile kode sumber, username ECS, alamat IP instans ECS, dan path unggah hanyalah contoh. Ganti nilai contoh tersebut dengan informasi aktual Anda.
-
Login ke instans ECS dan ekstrak paket kode sumber.
cd /home/user/workspace
unzip ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip
CatatanJika unzip belum terinstal, jalankan sudo apt install unzip.
Inisialisasi dan konfigurasi database
Anda dapat membangun pustaka musik mandiri.
-
Struktur data yang dikembalikan oleh layanan Anda harus sesuai dengan struktur data dari layanan Alibaba Cloud untuk pengambilan daftar musik; jika tidak, pengambilan akan gagal.
-
Jika Anda menggunakan struktur data kustom, sesuaikan logika kode di lapisan demo.
-
Buat database bernama voddemo.
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/sql
mysqladmin -u root -p create voddemo
-
Buat tabel dan akun administrator.
mysql -u root -p voddemo < ./appserver_create_table.sql
CatatanSelain membuat tabel, skrip appserver_create_table.sql menggunakan pernyataan INSERT untuk membuat akun administrator konsol dengan username
admindan password123456. Anda dapat menggunakan akun ini untuk login ke konsol demo sebagai administrator setelah konsol terintegrasi. -
Ubah aturan case sensitivity database.
-
Edit file konfigurasi database.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
-
Tekan tombol I dan tambahkan
lower_case_table_names=1di akhir file. -
Tekan Esc, lalu masukkan :wq! untuk menyimpan dan keluar.
-
Restart database agar perubahan diterapkan.
sudo service mysql restart
-
-
Konfigurasi alamat database.
-
Edit file konfigurasi kode sumber.
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
-
Tekan I dan ubah parameter berikut.
spring.datasource.url = jdbc:mysql://<Database_IP_address (e.g., 127.0.0.1)>:3306/<Database_name (e.g., voddemo)>?useSSL=false&useUnicode=true&characterEncoding=UTF-8 spring.datasource.username = <Database_username, e.g., admin> spring.datasource.password = <Database_password>Catatan-
Jika database dan server berjalan pada instans ECS yang sama, Anda dapat mengatur alamat IP database menjadi 127.0.0.1. Jika tidak, gunakan alamat IP mesin tempat database berada.
-
Database yang dibuat selama inisialisasi diberi nama voddemo.
-
-
Tekan Esc, lalu masukkan :wq! untuk menyimpan dan keluar.
-
Konfigurasi peran RAM
-
Ikuti langkah-langkah dalam Buat peran. Setelah memilih izin pada Langkah 6, lanjutkan dengan langkah-langkah berikut. Anda dapat menentukan nama peran kustom. Topik ini menggunakan
alivc-demo-rolesebagai contoh. -
Pada halaman Roles, klik nama peran RAM yang telah Anda buat, misalnya
alivc-demo-role, untuk menemukan ARN-nya. Catat nama peran RAM dan ARN untuk digunakan nanti. -
Pada halaman Roles, klik nama peran RAM yang telah Anda buat, misalnya
alivc-demo-role. Klik tab Trust Policy, lalu klik Edit Trust Policy dan ubah kebijakan kepercayaan sebagai berikut:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }Kebijakan ini mendefinisikan peran sebagai peran layanan, yang memungkinkan layanan cloud tepercaya (ECS) untuk mengasumsikannya. Jika kebijakan kepercayaan tidak diubah, peran RAM tidak dapat disambungkan ke instans ECS.
Parameter Instance ID harus diatur ke
["Instance ID"]. -
Sambungkan peran RAM ke instans ECS.
Gunakan API AttachInstanceRamRole dari ECS di OpenAPI Explorer. Untuk informasi lebih lanjut, lihat OpenAPI Explorer.
Catatan-
RegionId: ID wilayah tempat instans ECS Anda berada, misalnya China (Shanghai). Anda dapat menemukannya di Konsol ECS.
-
RamRoleName: Nama peran RAM. Contoh ini menggunakan
alivc-demo-role. -
InstanceIds: ID instans ECS sisi server tempat Anda ingin menyambungkan peran RAM. Anda dapat menemukannya di Konsol ECS. ID harus dalam format array, misalnya:
["i-bp135jrddxxf9tgo****"].
Klik Initiate Call. Pemanggilan yang berhasil akan mengembalikan pesan sukses di hasil debugging di sebelah kanan.
-
-
Jalankan perintah berikut di terminal ECS untuk memverifikasi bahwa peran RAM telah dikaitkan dengan instans ECS.
curl http://100.100.100.200/latest/meta-data/ram/security-credentials/alivc-demo-role
Tanggapan berikut menunjukkan bahwa otorisasi temporary STS berhasil, dan peran RAM telah dikaitkan dengan instans ECS.
{ "AccessKeyId" : "STS.XXXXXXXXXXXX", "AccessKeySecret" : "XXXXXXXXXXXXXXXX", "Expiration" : "2020-11-20T14:33:31Z", "SecurityToken" : "XXXXXXXXXXXXXXXXXXXXXX", "LastUpdated" : "2020-11-20T08:33:31Z", "Code" : "Success" }CatatanSetiap instans ECS hanya dapat disambungkan ke satu peran RAM. Untuk mengganti peran RAM yang disambungkan, pertama-tama panggil DetachInstanceRamRole di OpenAPI Explorer untuk melepas peran saat ini dari instans ECS, lalu gunakan AttachInstanceRamRole untuk menyambungkan peran RAM baru.
-
Konfigurasi informasi terkait RAM.
-
Edit file konfigurasi kode sumber.
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
-
Tekan I dan ubah file sesuai contoh berikut.
roleArn = acs:ram::xxx:role/alivc-demo-role roleSessionName = vod-session roleName = alivc-demo-role# Blok berikut berisi contoh usang dan harus diabaikan.Catatan-
Parameter
REGION_CN_HANGZHOUsudah tidak digunakan lagi. GunakanVOD_REGIONIDsebagai gantinya, seperti yang ditentukan dalam bagian konfigurasi ApsaraVideo VOD. -
roleArnmenentukan ARN yang diperoleh dari Konsol RAM. -
roleSessionNamemenentukan nama sesi untuk token temporary. Anda dapat menyesuaikan nama ini. -
roleNamemenentukan nama peran RAM yang diperoleh dari Konsol RAM. Dalam contoh ini, namanya adalahalivc-demo-role.
-
-
Tekan Esc, lalu masukkan :wq! untuk menyimpan dan keluar.
-
-
Konfigurasikan ApsaraVideo VOD.
-
Edit file konfigurasi kode sumber.
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
-
Tekan I dan ubah parameter sesuai kebutuhan.
# ID templat transkoding TEMPLATEGROUP_ID = xxx LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID = xxxxxxxx TAB_TEMPLATEGROUP_ID = xxxxxxxx # Nama domain DOMAIN_NAME = http://xxx:8080/ AVATAR_DOMAIN_NAME = http://xxx:8080/resource/ AVATAR_URL = 1.png,2.png VOD_REGIONID = cn-hangzhou # Kebijakan untuk layanan ApsaraVideo VOD policy = {"Version": "1", "Statement": [ {"Action": ["vod:*"], "Resource": ["*" ],"Effect": "Allow"}]} # appkey Taihe Music OPEN_API_URL = https://xxxxxxxx.xxxxxxxx.com Q_SOURCE = xxxxxxxx CALLBACK_PRIVETEKEY = VodTest01 CALLBACK_NAME = http://xxx:8080/vodcallback/callback APP_ID = app-1000000 AUDIT_SETTINGS_FLAG = on auth_key = xxxxx live_domain = http://xxxxx.aliyuncs.com package_name = IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideoParameter
Wajib
Deskripsi
TEMPLATEGROUP_ID
Ya
ID kelompok template transkoding. Untuk informasi lebih lanjut, lihat Kelompok template transkoding.
LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID
Tidak
Kelompok template transkoding yang digunakan untuk video panjang dalam alur kerja publish-before-review.
TAB_TEMPLATEGROUP_ID
Tidak
ID kelompok template transkoding Narrowband HD. Setelah dikonfigurasi, Anda dapat merekomendasikan video Narrowband HD di konsol. Jika ID ini tidak diatur, upaya untuk merekomendasikan video Narrowband HD akan gagal.
DOMAIN_NAME
Ya
Alamat instans ECS. Contoh: http://10.10.10.101:8080/.
AVATAR_DOMAIN_NAME
Tidak
Alamat untuk sumber daya avatar, yaitu alamat sumber daya statis instans ECS. Contoh: http://10.10.10.101:8080/resource/.
AVATAR_URL
Tidak
Daftar nama file gambar avatar yang dipisahkan koma, seperti
1.png,2.png.CatatanLetakkan file gambar avatar yang sesuai,
1.pngdan2.png, di direktori /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/webapp/resource. Jika layanan avatar tidak dikonfigurasi, pengguna mobile tidak akan memiliki avatar, tetapi fungsi lain tidak akan terpengaruh.VOD_REGIONID
Ya
Wilayah tempat layanan ApsaraVideo VOD berada. Contoh: cn-shanghai.
policy
Ya
Kebijakan yang membatasi izin lebih lanjut saat peran diasumsikan. Untuk informasi lebih lanjut, lihat Gunakan kebijakan RAM untuk otorisasi kustom.
CALLBACK_PRIVETEKEY
Ya
Kunci privat untuk otentikasi callback. Untuk informasi lebih lanjut, lihat Pengaturan Callback.
CALLBACK_NAME
Ya
URL callback. Contoh: http://<IP_Public_instans_ECS>:8080/vodcallback/callback. Contoh ini menggunakan http://10.10.10.101:8080/vodcallback/callback.
AUDIT_SETTINGS_FLAG
Ya
Menentukan mode peninjauan konten. Nilai default:
on. Nilai yang valid:-
on: review-before-publish.
-
off: publish-before-review.
package_name
Ya
Nama paket yang valid untuk interceptor. Pisahkan beberapa nama paket dengan koma. Nilai default adalah
IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideo.Catatan-
com.aliyun.apsara.svideoadalah nama paket untuk klien Android dalam contoh ini. -
Jika Bundle Identifier untuk klien iOS Anda sudah terdaftar, klien tidak dapat dijalankan. Anda harus menggunakan Bundle Identifier kustom, seperti
com.<Nama_Perusahaan>.<Nama_Projek>, untuk signature klien iOS dan menambahkannya ke parameterpackage_nameagar akses tetap valid. -
Interceptor hanya mengizinkan aplikasi mobile dengan nama paket yang valid untuk mengakses server. Jika tidak, permintaan dari klien mobile akan ditolak dengan error
403 Forbidden.
-
-
Tekan Esc, lalu masukkan :wq! untuk menyimpan dan keluar.
-
-
Jalankan layanan.
-
Kompilasi dan paketkan kode.
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226
mvn clean package -Dmaven.test.skip=true
Catatan-
Jika Maven belum terinstal, jalankan apt install maven untuk menginstalnya.
-
Waktu pengemasan tergantung pada bandwidth dan performa instans. Dalam contoh ini, pengemasan awal memerlukan waktu sekitar 30 menit.
Setelah pengemasan selesai, file
sdk-api-0.0.1-SNAPSHOT.jardihasilkan di direktori/home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target/. -
-
Deploy file JAR dan mulai layanan.
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target
nohup java -jar sdk-api-0.0.1-SNAPSHOT.jar &
Catatan-
Saat perintah dijalankan, prompt nohup akan muncul. Tekan Enter untuk menjalankan program di latar belakang.
-
Setelah perintah dieksekusi, file log bernama
nohup.outdihasilkan di direktori saat ini. Jalankan perintah cat nohup.out untuk melihat log. Jika log berisi pesanstart success, layanan telah berhasil dimulai. -
Jika instans ECS Anda memiliki memori yang kecil dan Anda perlu mengemas ulang serta mendeploy ulang kode sumber server, Anda dapat menjalankan perintah jps untuk melihat ID proses program JAR yang sedang berjalan, lalu jalankan perintah kill -9 <JAR_process_ID> untuk menghentikan proses sebelum mengemas dan mendeploy ulang. Jika tidak, proses pengemasan akan gagal karena memori tidak mencukupi.
-
-