全部产品
Search
文档中心

Simple Log Service:Sematkan halaman konsol dan bagikan data log (versi baru)

更新时间:Jul 06, 2025

Topik ini menjelaskan cara berbagi halaman hasil kueri dan analisis serta halaman dashboard Layanan Log Sederhana dengan pengguna lain, serta cara menyematkan halaman konsol Layanan Log Sederhana ke dalam sistem pihak ketiga. Dengan cara ini, pengguna dapat melihat log Anda dalam mode tanpa kata sandi dan tanpa login. URL dari halaman yang dibagikan disebut sebagai URL tanpa kata sandi dan tanpa login.

Informasi latar belakang

Tiket adalah token yang valid untuk jangka waktu pendek. Tiket digunakan untuk menghasilkan URL tanpa kata sandi dan tanpa login. Setelah pengguna mendapatkan URL tersebut, mereka dapat langsung mengakses halaman kueri dan analisis tertentu atau halaman dashboard tanpa perlu masuk ke konsol Layanan Log Sederhana menggunakan akun Alibaba Cloud.

Prosedur:

  1. Berikan izin yang diperlukan kepada Pengguna Resource Access Management (RAM).

  2. Dapatkan URL halaman konsol Layanan Log Sederhana.

  3. Panggil operasi CreateTicket untuk mendapatkan tiket.

  4. Hasilkan URL tanpa kata sandi dan tanpa login berdasarkan tiket dan URL halaman konsol Layanan Log Sederhana.

Peringatan

Untuk URL tanpa kata sandi dan tanpa login, operasi yang dapat dilakukan pada halaman tujuan bervariasi berdasarkan izin pemanggil operasi CreateTicket pada Layanan Log Sederhana. Untuk mengurangi risiko keamanan data yang muncul saat Anda menggunakan akun Alibaba Cloud untuk memanggil operasi CreateTicket, kami menyarankan Anda menggunakan pengguna RAM untuk memanggil operasi CreateTicket dan memberikan izin kepada pengguna RAM berdasarkan prinsip hak istimewa minimal. Untuk informasi lebih lanjut, lihat Langkah 1: Berikan izin yang diperlukan kepada pengguna RAM.

Hasilkan URL tanpa kata sandi dan tanpa login

Langkah 1: Berikan izin yang diperlukan kepada pengguna RAM

Jika Anda menggunakan akun Alibaba Cloud, Anda dapat melewati langkah ini dan melanjutkan ke Langkah 2.

  1. Buat pengguna RAM.

  2. Berikan izin pada sumber daya seperti proyek dan Logstore serta izin untuk memanggil operasi CreateTicket kepada pengguna RAM.

    1. Untuk informasi lebih lanjut tentang cara memberikan izin pada sumber daya tertentu, lihat Contoh penggunaan kebijakan kustom untuk memberikan izin kepada pengguna RAM.

    2. Untuk informasi lebih lanjut tentang cara memberikan izin untuk memanggil operasi CreateTicket, lihat Berikan izin kepada pengguna RAM dan Buat kebijakan kustom.

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": "log:CreateTicket",
                  "Resource": "acs:log:*:*:ticket/*"
              }
          ]
      }

Langkah 2: Dapatkan URL halaman konsol Layanan Log Sederhana

  • Halaman kueri dan analisis:

    https://sls.console.alibabacloud.com/lognext/project/<Nama Proyek>/logsearch/<Nama Logstore>?slsRegion=<Wilayah tempat proyek berada>&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true

    Untuk informasi lebih lanjut tentang nama proyek, lihat Kelola proyek. Untuk informasi lebih lanjut tentang nama Logstore, lihat Kelola logstore. Untuk informasi lebih lanjut tentang wilayah yang didukung oleh proyek, lihat kolom ID Wilayah di Titik akhir.

  • Halaman kueri:

    https://sls.console.alibabacloud.com/lognext/project/<Nama Proyek>/logsearch/<Nama Logstore>?slsRegion=<Wilayah tempat proyek berada>&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true
  • Halaman dashboard:

    Penting

    Dashboard ID hanya ditampilkan di URL halaman dashboard. ID tersebut bukan nama yang ditampilkan di dashboard. Anda dapat berbagi halaman dashboard dalam mode tanpa kata sandi di konsol Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Bagikan dashboard atau grafik tanpa kata sandi.

    https://sls.console.alibabacloud.com/lognext/project/<Nama Proyek>/dashboard/<ID Dashboard>?slsRegion=<Wilayah tempat proyek berada>&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true

Langkah 3: Dapatkan tiket

Penting
  • Jika Anda ingin memanggil operasi CreateTicket untuk mendapatkan tiket, Anda harus menggunakan titik akhir Layanan Log Sederhana untuk wilayah Cina (Shanghai) atau Singapura. Setelah Anda mendapatkan tiket, Anda dapat menggunakan tiket tersebut terlepas dari wilayahnya.

  • Tiket hanya dapat digunakan satu kali. Masa berlaku default adalah satu hari dan masa berlaku maksimum adalah 30 hari. Untuk informasi lebih lanjut tentang cara mendapatkan tiket secara dinamis, lihat Bagaimana sistem mendapatkan tiket secara dinamis?

image

Langkah 4: Hasilkan URL tanpa kata sandi dan tanpa login

  1. Gabungkan tiket yang diperoleh di Langkah 3 dan URL halaman konsol Layanan Log Sederhana yang diperoleh di Langkah 2 untuk menghasilkan URL tanpa kata sandi dan tanpa login.

    https://sls.console.alibabacloud.com/lognext/project/<Nama Proyek>/dashboard/<ID Dashboard>?slsRegion=<Wilayah tempat proyek berada>&sls_ticket=eyJ***************.eyJ******************.KUT****************&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true
  2. Uji URL tanpa kata sandi dan tanpa login. Anda dapat memasukkan URL di bilah alamat browser Anda untuk menguji URL tersebut. Jika Anda dapat mengakses halaman konsol Layanan Log Sederhana, URL tersebut valid.

    Peringatan
    • Pertama kali Anda mengakses URL tanpa kata sandi dan tanpa login di browser, Anda dapat menguji URL tersebut. Setelah pengujian selesai, tiket menjadi tidak valid. Anda harus memanggil operasi CreateTicket lagi untuk mendapatkan tiket baru.

    • Kami menyarankan Anda menyalin URL tanpa kata sandi dan tanpa login ke file dan mentransfer file tersebut. Jika Anda langsung mengirimkan URL tanpa kata sandi dan tanpa login ke perangkat lunak pihak ketiga, URL tersebut mungkin menjadi tidak valid setelah perangkat lunak membaca URL tersebut.

FAQ

Bagaimana cara memperpanjang masa berlaku URL ke halaman konsol yang disematkan?

Untuk informasi lebih lanjut, lihat Perpanjang masa berlaku URL ke halaman konsol yang disematkan.

Bagaimana tiket dibuat secara dinamis?

Jika Anda ingin menyematkan halaman konsol Layanan Log Sederhana ke dalam sistem pihak ketiga, Anda harus memanggil operasi CreateTicket secara dinamis di aplikasi Anda untuk mendapatkan tiket secara berkala. Jika Anda menggunakan pasangan AccessKey dari pengguna RAM untuk memanggil operasi CreateTicket, prosedurnya sederhana tetapi memiliki risiko keamanan tinggi. Kami menyarankan Anda menggunakan peran RAM yang memiliki Token Layanan Keamanan (STS) untuk memanggil operasi CreateTicket. Ini mengurangi risiko keamanan.

  1. Buat pengguna RAM dan buat peran RAM yang entitas tepercayanya adalah akun Alibaba Cloud.

  2. Berikan izin AliyunSTSAssumeRoleAccess kepada pengguna RAM. Berikan izin untuk memanggil CreateTicket operasi dan izin terkait Simple Log Service kepada Peran RAM. Untuk informasi lebih lanjut, lihat Memberikan izin kepada Peran RAM dan Contoh penggunaan kebijakan kustom untuk memberikan izin kepada pengguna RAM.

  3. Gunakan peran RAM untuk memanggil operasi CreateTicket.

    1. Gunakan pengguna RAM untuk memanggil operasi AssumeRole untuk mendapatkan token STS dan pasangan AccessKey. Pasangan AccessKey terdiri dari ID AccessKey dan rahasia AccessKey. Parameter AccessKeyId dan AccessKeySecret menentukan ID AccessKey dan rahasia AccessKey. Parameter SecurityToken menentukan token STS.

    2. Gunakan pengguna RAM untuk mengasumsikan peran RAM berdasarkan parameter SecurityToken, AccessKeySecret, dan AccessKeyId. Kemudian, panggil operasi CreateTicket untuk mendapatkan tiket.

      Contoh SDK

      Java

      1. Tambahkan dependensi Maven.

        Buka file pom.xml di direktori root proyek Java Anda dan tambahkan kode berikut:

            <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>sls20201230</artifactId>
              <version>5.2.1</version>
            </dependency>
            <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>tea-openapi</artifactId>
              <version>0.3.2</version>
            </dependency>
            <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>tea-console</artifactId>
              <version>0.0.1</version>
            </dependency>
            <dependency>
              <groupId>com.aliyun</groupId>
              <artifactId>tea-util</artifactId>
              <version>0.2.21</version>
            </dependency>
      2. Tulis kode untuk mendapatkan tiket.

        import com.aliyun.tea.*;
        
        public class Sample {
        
            /**
             * Gunakan ID AccessKey dan rahasia AccessKey Anda untuk menginisialisasi klien.
             * @return Client
             * @throws Exception
             */
            public static com.aliyun.sls20201230.Client createClient() throws Exception {
                // Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Contoh kode berikut hanya untuk referensi.
                // Kami menyarankan Anda menggunakan token STS, yang memberikan keamanan lebih tinggi.
                com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                        // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
                        .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                        // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
                        .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
                // Untuk informasi lebih lanjut tentang titik akhir, lihat https://api.aliyun.com/product/Sls.
                config.endpoint = "cn-shanghai.log.aliyuncs.com";
                return new com.aliyun.sls20201230.Client(config);
            }
        
            public static void main(String[] args_) throws Exception {
                java.util.List<String> args = java.util.Arrays.asList(args_);
                com.aliyun.sls20201230.Client client = Sample.createClient();
                com.aliyun.sls20201230.models.CreateTicketRequest createTicketRequest = new com.aliyun.sls20201230.models.CreateTicketRequest();
                com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
                java.util.Map<String, String> headers = new java.util.HashMap<>();
                try {
                    com.aliyun.sls20201230.models.CreateTicketResponse resp = client.createTicketWithOptions(createTicketRequest, headers, runtime);
                    com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
                } catch (TeaException error) {
                    // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
                    // Tampilkan pesan kesalahan.
                    System.out.println(error.getMessage());
                    // Tampilkan informasi untuk pemecahan masalah.
                    System.out.println(error.getData().get("Recommend"));
                    com.aliyun.teautil.Common.assertAsString(error.message);
                } catch (Exception _error) {
                    TeaException error = new TeaException(_error.getMessage(), _error);
                    // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
                    // Tampilkan pesan kesalahan.
                    System.out.println(error.getMessage());
                    // Tampilkan informasi untuk pemecahan masalah.
                    System.out.println(error.getData().get("Recommend"));
                    com.aliyun.teautil.Common.assertAsString(error.message);
                }
            }
        }

      Python

      # -*- coding: utf-8 -*-
      # File ini dihasilkan secara otomatis, jangan edit. Terima kasih.
      import os
      import sys
      
      from typing import List
      
      from alibabacloud_sls20201230.client import Client as Sls20201230Client
      from alibabacloud_tea_openapi import models as open_api_models
      from alibabacloud_sls20201230 import models as sls_20201230_models
      from alibabacloud_tea_util import models as util_models
      from alibabacloud_tea_util.client import Client as UtilClient
      
      
      class Sample:
          def __init__(self):
              pass
      
          @staticmethod
          def create_client() -> Sls20201230Client:
              """
              Gunakan ID AccessKey dan rahasia AccessKey Anda untuk menginisialisasi klien.
              @return: Client
              @throws Exception
              """
              # Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Contoh kode berikut hanya untuk referensi.
              # Kami menyarankan Anda menggunakan token STS, yang memberikan keamanan lebih tinggi. Untuk informasi lebih lanjut tentang metode autentikasi, lihat https://www.alibabacloud.com/help/document_detail/378659.html.
              config = open_api_models.Config(
                  # Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.,
                  access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
                  # Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.,
                  access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
                  # Wajib. Pastikan token STS dikonfigurasi.
                  security_token=os.environ['ALIBABA_CLOUD_Token']
              )
              # Untuk informasi lebih lanjut tentang titik akhir, lihat https://api.aliyun.com/product/Sls.
              config.endpoint = f'cn-shanghai.log.aliyuncs.com'
              return Sls20201230Client(config)
      
          @staticmethod
          def main(
              args: List[str],
          ) -> None:
              client = Sample.create_client()
              create_ticket_request = sls_20201230_models.CreateTicketRequest(
                  expiration_time=300
              )
              runtime = util_models.RuntimeOptions()
              headers = {}
              try:
                  # Jika Anda menyalin dan menjalankan kode contoh, tambahkan kode untuk menampilkan hasil pemanggilan API.
                  client.create_ticket_with_options(create_ticket_request, headers, runtime)
              except Exception as error:
                  # Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
                  # Tampilkan pesan kesalahan.
                  print(error.message)
                  # Tampilkan informasi untuk pemecahan masalah.
                  print(error.data.get("Recommend"))
                  UtilClient.assert_as_string(error.message)
      
          @staticmethod
          async def main_async(
              args: List[str],
          ) -> None:
              client = Sample.create_client()
              create_ticket_request = sls_20201230_models.CreateTicketRequest(
                  expiration_time=300
              )
              runtime = util_models.RuntimeOptions()
              headers = {}
              try:
                  # Jika Anda menyalin dan menjalankan kode contoh, tambahkan kode untuk menampilkan hasil pemanggilan API.
                  await client.create_ticket_with_options_async(create_ticket_request, headers, runtime)
              except Exception as error:
                  # Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
                  # Tampilkan pesan kesalahan.
                  print(error.message)
                  # Tampilkan informasi untuk pemecahan masalah.
                  print(error.data.get("Recommend"))
                  UtilClient.assert_as_string(error.message)
      
      
      if __name__ == '__main__':
          Sample.main(sys.argv[1:])
  4. Hasilkan URL tanpa kata sandi dan tanpa login berdasarkan tiket yang diperoleh dan izinkan operasi yang berbeda.

Saat saya menggunakan SDK Layanan Log Sederhana untuk memanggil operasi CreateTicket, kesalahan InvalidMethod dilaporkan. Mengapa?

Anda harus menggunakan titik akhir Layanan Log Sederhana untuk wilayah Cina (Shanghai) atau Singapura untuk memanggil operasi CreateTicket. Namun, setelah Anda mendapatkan tiket, Anda dapat menggunakan tiket tersebut terlepas dari wilayahnya.

Apa batasan pada tiket?

  • Masa berlaku default tiket adalah satu hari dan masa berlaku maksimum adalah 30 hari.

  • Anda dapat menggunakan tiket untuk mengakses URL hanya di browser atau host yang sama. Misalnya, jika Anda mengakses URL tanpa kata sandi dan tanpa login di Browser A menggunakan tiket, Anda dapat terus mengakses URL tersebut sebelum masa berlaku tiket berakhir. Namun, Anda tidak dapat menggunakan tiket untuk mengakses URL di Browser B.

  • Jumlah total tiket tidak terbatas. Anda dapat memanggil operasi CreateTicket hingga 10 kali per detik per akun.

Apa batasan pada cookie pihak ketiga?

Anda dapat menyematkan halaman konsol dan berbagi data log tanpa perlu menggunakan cookie pihak ketiga. Untuk informasi lebih lanjut, lihat Sematkan halaman konsol dan bagikan data log (versi baru).

Berapa kecepatan pemuatan halaman yang disematkan?

Layanan Log Sederhana menyediakan versi lama dan baru dari fitur yang dapat Anda gunakan untuk menyematkan halaman konsol dan berbagi data log. Jika Anda menggunakan versi baru, halaman yang disematkan dapat dimuat lebih cepat. Untuk informasi lebih lanjut, lihat Sematkan halaman konsol dan bagikan data log (versi baru).

Apa yang harus saya lakukan jika saya ingin membuka beberapa halaman yang disematkan yang mendukung izin operasi yang sama?

  1. Anda dapat memperoleh tiket dan menyegarkan halaman yang disematkan di browser yang sama. Jika tiket kedaluwarsa, peroleh tiket baru dan ganti tiket yang kedaluwarsa dengan tiket baru di semua halaman.

  2. Browser atau komputer yang berbeda dianggap sebagai pengguna yang berbeda. Tiket hanya dapat digunakan sekali. Jika Anda menggunakan browser atau komputer yang berbeda, Anda tidak dapat menggunakan tiket yang sama dan pesan kesalahan berikut akan dikembalikan:

    {"code":"TicketUnavailable","message":"Tidak ada tiket yang tersedia.","requestId":"xxxxxx","success":false}

Apa yang harus saya lakukan jika saya ingin membuka beberapa halaman yang disematkan yang mendukung izin operasi yang berbeda?

  1. Anda dapat memperoleh beberapa tiket yang terkait dengan izin yang berbeda. Namun, Anda hanya dapat menyegarkan halaman yang disematkan yang menggunakan tiket terakhir dalam kasus ini. Ini karena sistem hanya mencatat satu cookie sebagai kredensial pengguna saat ini dan menyegarkan halaman hanya berdasarkan cookie yang dicatat. Cookie yang dicatat sesuai dengan tiket terakhir.

  2. Jika Anda tidak menyegarkan halaman, cookie tidak diperlukan. Anda dapat beralih antar halaman dan melakukan operasi yang berbeda di halaman yang berbeda.

  3. Jika Anda menyegarkan halaman yang disematkan yang tidak menggunakan tiket terakhir, pesan kesalahan berikut akan dikembalikan:

    {"code":"TicketUnavailable","message":"Tidak ada tiket yang tersedia.","requestId":"xxxxxx","success":false}