Saat menggunakan Serverless App Engine (SAE) untuk mengelola aplikasi, kontainer digunakan sebagai lingkungan sementara tempat aplikasi berjalan tanpa memerlukan operasi dan pemeliharaan. SAE menyediakan fitur webshell ringan bawaan di konsol SAE yang memungkinkan Anda melihat dan men-debug kontainer. Dengan cara ini, Anda dapat memecahkan masalah secara efisien dalam mode online. Citra dasar kontainer aplikasi SAE dapat digunakan oleh waktu proses aplikasi, dan kontainer aplikasi yang tidak stabil hanya bersifat sementara. Anda tidak perlu mengaktifkan SSH untuk citra dasar, cukup tambahkan perintah /bin/bash yang dapat dieksekusi dalam kode Anda. Kami sarankan Anda menyiapkan semua alat O&M yang diperlukan untuk pemecahan masalah.
Batasan
Fitur webshell tidak mendukung citra Windows.
Catatan penggunaan
Eksekusi kode dan lingkungan Webshell sepenuhnya milik pengguna.
Lingkungan jaringan
SAE menerapkan aplikasi di virtual private cloud (VPC) mandiri yang mendukung fitur namespace. Anda dapat mengisolasi panggilan layanan middleware secara logis. Sebuah namespace hanya dapat dikaitkan dengan satu vSwitch dalam VPC, tetapi satu vSwitch dapat dikaitkan dengan beberapa namespace. Alamat IP sumber daya dalam VPC hanya dapat diakses di dalam VPC, dan aplikasi tidak dapat saling berinteraksi lintas VPC. Namespace digunakan untuk mengisolasi panggilan layanan middleware secara logis. Aplikasi dalam namespace berbeda diisolasi dalam panggilan layanan middleware seperti penemuan layanan dan pengiriman konfigurasi.
Untuk informasi lebih lanjut tentang mekanisme kerja dan pengenalan produk VPC, lihat Arsitektur Layanan.
Karakteristik VPC dan SAE menentukan bahwa kontainer aplikasi SAE tidak dapat terhubung ke layanan (kecuali layanan Alibaba Cloud seperti OSS dan Container Registry) di luar VPC. Jika tidak dikonfigurasi tambahan, kontainer aplikasi SAE berjalan di jaringan terisolasi, sehingga Anda tidak dapat langsung mengakses kontainer tersebut.
Contoh kode berikut menunjukkan kegagalan akses ke kontainer aplikasi.

Jika Anda ingin instance aplikasi mengakses layanan di Internet, Anda harus membeli gateway NAT dan mengonfigurasi Source Network Address Translation (SNAT) untuk vSwitch dalam VPC. Untuk informasi lebih lanjut, lihat Konfigurasikan Gateway NAT untuk Aplikasi SAE untuk Mengaktifkan Akses Internet.
SNAT memungkinkan instance aplikasi dalam VPC mengakses Internet saat tidak ada alamat IP publik yang ditetapkan pada instance. Anda dapat mengonfigurasi Entri SNAT untuk instance agar menggunakan elastic IP addresses (EIPs) yang terkait dengan gateway NAT. Dengan cara ini, instance dapat memanggil layanan melalui Internet dan mendapatkan sumber daya Internet. Untuk informasi lebih lanjut, lihat Produk dengan Akses ke Internet.
Membuat citra
SAE dapat bekerja sama dengan Container Registry, memungkinkan Anda membuat dan mengelola citra. SAE menyediakan citra dasar centos:7, bahasa pemrograman, codec, zona waktu, dan lingkungan pengembangan seperti OpenJDK.
Kontainer dirancang untuk memfasilitasi aplikasi berjalan, dan SAE hanya mengintegrasikan sejumlah alat terbatas secara default. Jika SAE mengintegrasikan terlalu banyak alat, konsumsi sumber daya dari alat tersebut dapat memengaruhi status aplikasi. Jika Anda membutuhkan alat yang tidak terintegrasi dalam SAE, Anda harus membuat citra atau mendapatkan citra dari OSS. Untuk informasi lebih lanjut, lihat Buat Citra untuk Menerapkan Aplikasi Java.
Tampilkan jendela webshell dalam layar penuh
Anda dapat melakukan langkah-langkah berikut untuk menampilkan jendela webshell dalam layar penuh:
Masuk ke Konsol SAE. Di panel navigasi kiri, pilih . Pada halaman yang muncul, pilih wilayah di bilah navigasi atas dan namespace dari daftar drop-down Namespace, lalu klik nama aplikasi yang diinginkan.
Pada halaman Basic Information, klik tab Instances.
Di bagian Default Group dari tab Instances, temukan instance yang ingin Anda kelola dan klik Webshell di kolom Actions.

Opsional. Saat jendela webshell muncul, klik ikon
di pojok kanan atas untuk menampilkan jendela dalam layar penuh.Jalankan perintah di jendela webshell sesuai kebutuhan bisnis Anda untuk melihat dan men-debug kontainer Anda.
Untuk informasi lebih lanjut, lihat Dapatkan Metadata Instance Aplikasi dan Periksa Status Kesehatan Aplikasi.
Dapatkan metadata instance aplikasi
Setelah menerapkan aplikasi ke SAE, Anda dapat memperoleh metadata instance aplikasi, termasuk ID grup keamanan, ID VPC, dan ID vSwitch.
Lokasi metadata | Deskripsi |
/etc/podinfo/sgId | Path tempat ID grup keamanan berada. |
/etc/podinfo/vpcId | Path tempat ID VPC berada. |
/etc/podinfo/vswitchId | Path tempat ID vSwitch berada. Catatan Saat beberapa vSwitch ada, ID vSwitch dipisahkan dengan koma (,). |
Anda dapat masuk ke SAE console dan menjalankan perintah berikut di jendela webshell untuk memverifikasi ID grup keamanan, ID VPC, dan ID vSwitch.
Jalankan perintah berikut untuk membuka direktori
podinfo:cd /etc/podinfo/CatatanJika kesalahan
can't cd to /etc/podinfo/dilaporkan saat menjalankan perintah, Anda dapat restart instance atau deploy aplikasi.Jalankan perintah berikut untuk melihat semua file metadata instance:
lsOutput yang diharapkan:
sgId vpcId vswitchIdJalankan perintah berikut sesuai kebutuhan bisnis Anda untuk memverifikasi metadata instance aplikasi:
Jalankan perintah berikut untuk mendapatkan ID grup keamanan:
cat sgIdOutput yang diharapkan:
sg-2ze4ddm2rqgenvcx****sh-4.2#Jalankan perintah berikut untuk mendapatkan ID VPC:
cat vpcIdOutput yang diharapkan:
vpc-2zeqku2oevokwm66b****sh-4.2#Jalankan perintah berikut untuk mendapatkan ID vSwitch:
cat vswitchIdOutput yang diharapkan:
vsw-2zewmy4ynhljytzhu****sh-4.2#
Salin perintah untuk menginstal komponen O&M
Anda dapat masuk ke SAE console dan melakukan langkah-langkah berikut untuk menyalin perintah di jendela webshell sesuai kebutuhan bisnis Anda. Perintah ini digunakan untuk menginstal komponen O&M.
Perintah yang diinstal di jendela webshell tidak valid setelah kontainer dibangun ulang. Untuk perintah umum, kami sarankan Anda menginstalnya saat membuat citra.
Klik ikon
di pojok kanan atas jendela webshell.Di kotak dialog Copy Command, pilih komponen yang diperlukan, pratinjau perintah yang ditampilkan, lalu klik Copy. Parameter Pilih Instal Komponen menyediakan opsi berikut:
Install openssh: OpenSSH adalah implementasi protokol SSH gratis dan open source. OpenSSH menyediakan program backend server-side dan alat klien untuk mengenkripsi data yang ditransmisikan dalam kontrol jarak jauh dan transfer file. Anda dapat menginstal OpenSSH dan kemudian menggunakan debugging jarak jauh untuk mengimplementasikan fungsi berikut: login jarak jauh melalui protokol SSH, serta unggah dan unduh file menggunakan sftp dan scp. Dengan cara ini, Anda dapat men-debug instance aplikasi SAE untuk memenuhi kebutuhan tak terduga.
Install net-tools (netstat): Perintah netstat digunakan untuk memantau status jaringan. Anda dapat menjalankan perintah ini untuk menampilkan tabel rute, koneksi jaringan aktif, dan status antarmuka jaringan.
Install iroute (ss): Statistik socket (ss) perintah digunakan untuk menampilkan statistik socket yang mirip dengan informasi yang diperoleh dengan menjalankan perintah netstat. Dibandingkan dengan menjalankan perintah netstat, Anda dapat dengan cepat mendapatkan lebih banyak informasi tentang koneksi TCP dengan menjalankan perintah ss.
Tempelkan perintah yang Anda salin di jendela webshell dan tekan Enter untuk mengeksekusi perintah.
Periksa status kesehatan aplikasi
Lakukan pemeriksaan rutin pada aplikasi
Anda dapat melakukan pemeriksaan rutin atau mengunggah dan mengunduh log untuk memeriksa status kesehatan aplikasi SAE. Beberapa pemeriksaan rutin tersedia. Misalnya, Anda dapat memeriksa proses, thread, dan Java virtual machine (JVM) dari aplikasi Java. Bagian ini menjelaskan cara memeriksa proses aplikasi Java dan cara melakukan analisis online pada aplikasi Java.
Jalankan perintah berikut untuk memeriksa apakah aplikasi Java memiliki proses yang tersedia:
ps -ef | grep javaCatatanDalam kontainer, proses utama digunakan untuk memulai aplikasi. Jika aplikasi dihentikan, kontainer keluar. SAE secara otomatis memulai ulang kontainer untuk mencegah gangguan layanan.
Jika tidak ada proses yang tersedia, jalankan perintah
dmesg | grep -i killuntuk memeriksa log out of memory (OOM).Jika log OOM ada, proses aplikasi dihentikan. Anda perlu memeriksa file log bernama
hs_err_pid{PID}.logdi direktori kerja untuk mengidentifikasi penyebabnya.
Anda juga dapat menggunakan perangkat lunak open source Arthas yang disediakan oleh Alibaba Cloud untuk melakukan analisis online pada aplikasi Java. Kami sarankan Anda mengintegrasikan Arthas ke dalam citra uji untuk melakukan pemeriksaan rutin. Arthas dapat menampilkan status pemuatan kelas Java secara real-time. Dengan cara ini, Anda dapat melihat parameter input dan output serta variabel lingkungan.
Hubungkan aplikasi ke Internet.
Untuk informasi lebih lanjut, lihat Konfigurasikan Gateway NAT untuk Aplikasi SAE untuk Mengaktifkan Akses Internet.
Jalankan perintah berikut untuk mengunduh Arthas:
sudo wget https://alibaba.github.io/arthas/arthas-boot.jarJalankan perintah berikut untuk memulai Arthas:
sudo java -jar arthas-boot.jar
Unggah dan unduh log untuk memeriksa status kesehatan aplikasi
Jika pemeriksaan rutin tidak dapat memberikan informasi yang diperlukan, Anda dapat mengunggah log yang dikumpulkan dari kontainer ke cloud, lalu mengunduh log ke mesin lokal Anda untuk analisis aplikasi.
Jika ukuran file log lebih kecil dari atau sama dengan 10 MB, Anda dapat menggunakan fitur webshell bawaan SAE. Untuk informasi, lihat Gunakan Fitur Webshell untuk Mengunggah dan Mengunduh File.
Jika ukuran file log lebih besar dari 10 MB, Anda dapat mengunggah file log ke OSS. Layanan OSS kompatibel dengan semua lingkungan jaringan di Alibaba Cloud. Anda dapat melakukan langkah-langkah berikut untuk menggunakan OSS untuk mengunggah dan mengunduh log.
Instal alat baris perintah OSS ossutil di kontainer. Untuk informasi lebih lanjut, lihat Instal ossutil.
Dalam contoh ini, pengguna CentOS 64-bit ingin mengunduh log. Jika aplikasi tidak terhubung ke Internet, pengguna root harus mengunduh file log ke mesin lokal, mengunggah file yang diunduh ke OSS, dan kemudian mendapatkan alamatinternal yang dapat diakses dalam VPC dari OSS untuk mengunduh file.
Jalankan perintah berikut untuk mengunduh ossutil:
sudo wget http://gosspublic.alicdn.com/ossutil/1.5.0/ossutil64Jalankan perintah berikut untuk memodifikasi izin eksekusi pada paket instalasi ossutil:
sudo chmod 755 ossutil64
Konfigurasikan ossutil dan tentukan titik akhir internal VPC di wilayah tempat aplikasi Anda berada. Tentukan pasangan AccessKey dari akun yang ingin Anda gunakan untuk menerima file yang diunggah, melihat bucket yang ada, dan memeriksa apakah layanan OSS Anda tersedia.
CatatanPastikan layanan OSS diaktifkan untuk akun Alibaba Cloud Anda. Akun tersebut mungkin bukan akun yang digunakan untuk mengelola aplikasi SAE.
Pastikan bucket dibuat. Untuk informasi lebih lanjut, lihat Buat Bucket.
Jalankan perintah berikut untuk membuat file konfigurasi yang menyimpan informasi akses OSS:
Anda dapat mengikuti petunjuk di layar untuk menentukan pasangan AccessKey dan informasi titik akhir Anda. Anda tidak perlu menentukan Token Layanan Keamanan (STS).
./ossutil64 configJalankan perintah berikut untuk mencantumkan semua bucket:
Periksa apakah akun dapat digunakan. Jika kesalahan dilaporkan, konfigurasi tidak valid.
./ossutil64 lsContoh output:
CreationTime Region StorageClass BucketName 2021-12-08 18:53:46 +0800 CST oss-cn-hangzhou Standard oss://test-bucketJalankan perintah berikut untuk membuat file log simulasi bernama sae-app.log.
echo "Hello" > sae-app.logJalankan perintah berikut untuk mengunggah file log ke bucket tertentu:
./ossutil64 cp sae-app.log {bucket-address}Contoh kode:
./ossutil64 cp sae-app.log oss://test-bucket
Gunakan salah satu metode berikut untuk memverifikasi hasilnya.
Metode 1: Jalankan perintah berikut untuk melihat file log yang diunggah:
./ossutil64 ls oss://test-bucketContoh output:
LastModifiedTime Size(B) StorageClass ETAG ObjectName 2021-12-08 19:26:18 +0800 CST 6 Standard 09F7E02F1290BE211DA707A266F1**** oss://cri-55md3gmii09m****-chart/sae-app.log Object Number is: 1 0.047758(s) elapsedMetode 2: Temukan file log Anda di OSS console atau menggunakan alat. Kemudian, unduh file tersebut ke mesin lokal Anda, dan pilih alat untuk menganalisis status aplikasi.