Todos los productos
Search
Centro de documentos

Simple Log Service:Insertar páginas de la consola y compartir datos de registros (nueva versión)

Última actualización: Sep 22, 2026

Este tema describe cómo compartir con otros usuarios las páginas de resultados de consulta y análisis, así como los paneles de Simple Log Service. También explica cómo insertar las páginas de la consola de Simple Log Service en sistemas de terceros. De este modo, los usuarios consultan sus registros sin necesidad de introducir una contraseña ni iniciar sesión. Las URL de las páginas compartidas se denominan URL sin contraseña y sin inicio de sesión.

Contexto

Un ticket es un token válido durante un periodo breve que se utiliza para generar una URL sin contraseña y sin inicio de sesión. Cuando un usuario obtiene esta URL, accede directamente a las páginas de consulta y análisis o a los paneles especificados. No necesita iniciar sesión en la consola de Simple Log Service con una cuenta de Alibaba Cloud.

Procedimiento:

  1. Otorgue los permisos obligatorios a un usuario de Resource Access Management (RAM).

  2. Obtenga la URL de una página de la consola de Simple Log Service.

  3. Llame a la operación CreateTicket para obtener un ticket.

  4. Genere una URL sin contraseña y sin inicio de sesión a partir del ticket y de la URL de la página de la consola de Simple Log Service.

Aviso

En una URL sin contraseña y sin inicio de sesión, las operaciones disponibles en la página de destino varían según los permisos de quien llama a la operación CreateTicket en Simple Log Service. Para reducir los riesgos de seguridad de los datos al llamar a la operación CreateTicket con una cuenta de Alibaba Cloud, se recomienda usar un usuario de RAM para invocar la operación CreateTicket. Otorgue permisos a dicho usuario de RAM conforme al principio de privilegio mínimo. Para más información, consulte Step 1: Grant the required permissions to a RAM user.

Generar una URL sin contraseña y sin inicio de sesión

Paso 1: Otorgar los permisos obligatorios a un usuario de RAM

Si utiliza una cuenta de Alibaba Cloud, omita este paso y continúe con el paso 2.

  1. Create a RAM user.

  2. Otorgue al usuario de RAM los permisos sobre recursos como proyectos y logstores, además de los permisos para llamar a la operación CreateTicket.

    1. Para más información sobre cómo otorgar permisos en recursos específicos, consulte RAM custom policy examples.

    2. Para más información sobre cómo otorgar permisos para llamar a la operación CreateTicket, consulte Manage RAM user permissions y Create a custom policy.

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

Paso 2: Obtener la URL de una página de la consola de Simple Log Service

  • Página de consulta y análisis:

    https://sls.console.alibabacloud.com/lognext/project/<Project name>/logsearch/<Logstore name>?slsRegion=<Region where the project resides>&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true

    Para más información sobre los nombres de proyecto, consulte Manage projects. Para conocer los detalles de los nombres de logstore, consulte Manage Logstores. Para ver las regiones compatibles con los proyectos, revise la columna Region ID en Endpoints.

  • Página de consulta:

    https://sls.console.alibabacloud.com/lognext/project/<Project name>/logsearch/<Logstore name>?slsRegion=<Region where the project resides>&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true
  • Página del panel:

    Importante

    El Dashboard ID solo aparece en la URL de la página del panel. Este identificador no es el nombre que se muestra en el panel. Puede compartir páginas de panel sin contraseña desde la consola de Simple Log Service. Para más información, consulte Share dashboards or charts without passwords.

    https://sls.console.alibabacloud.com/lognext/project/<Project name>/dashboard/<Dashboard ID>?slsRegion=<Region where the project resides>&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true

Paso 3: Obtener un ticket

Importante
  • Si desea llamar a la operación CreateTicket para obtener un ticket, debe usar el endpoint de Simple Log Service correspondiente a la región China (Shanghai) o Singapore. Una vez obtenido el ticket, lo utilizará sin importar la región.

  • Un ticket se usa únicamente una vez. El periodo de validez predeterminado es de un día y el máximo es de 30 días. Para más información sobre cómo obtener un ticket de forma dinámica, consulte How does the system dynamically obtain a ticket?

image

Paso 4: Generar una URL sin contraseña y sin inicio de sesión

  1. Concatene el ticket obtenido en el paso 3 con la URL de la página de la consola de Simple Log Service obtenida en el paso 2 para generar la URL sin contraseña y sin inicio de sesión.

    https://sls.console.alibabacloud.com/lognext/project/<Project name>/dashboard/<Dashboard ID>?slsRegion=<Region where the project resides>&sls_ticket=eyJ***************.eyJ******************.KUT****************&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true
  2. Compruebe la URL sin contraseña y sin inicio de sesión. Introduzca la URL en la barra de direcciones de su navegador para probarla. Si logra acceder a la página de la consola de Simple Log Service, la URL es válida.

    Aviso
    • La primera vez que acceda a una URL sin contraseña y sin inicio de sesión en un navegador, podrá comprobarla. Al terminar la prueba, el ticket dejará de ser válido. Deberá llamar nuevamente a la operación CreateTicket para obtener un nuevo ticket.

    • Se recomienda copiar la URL sin contraseña y sin inicio de sesión en un archivo y transferir dicho archivo. Si envía la URL directamente a un software de terceros, podría invalidarse después de que el programa la lea.

Preguntas frecuentes

¿Cómo amplío el periodo de validez de las URL de las páginas de consola insertadas?

Para más información, consulte Extend the validity periods of URLs to embedded console pages.

¿Cómo se genera un ticket de forma dinámica?

Si desea insertar páginas de la consola de Simple Log Service en sistemas de terceros, debe llamar de forma dinámica a la operación CreateTicket desde su aplicación para obtener un ticket periódicamente. Usar un par de AccessKey de un usuario de RAM para llamar a la operación CreateTicket simplifica el procedimiento, pero implica riesgos de seguridad elevados. Se recomienda emplear un rol de RAM que cuente con un token de Security Token Service (STS) para invocar la operación CreateTicket. Esto reduce los riesgos de seguridad.

  1. Create a RAM user y create a RAM role whose trusted entity is an Alibaba Cloud account.

  2. Otorgue el permiso AliyunSTSAssumeRoleAccess al usuario de RAM. Conceda al rol de RAM los permisos para llamar a la CreateTicket operación, junto con los permisos relacionados con Simple Log Service. Para más información, consulte Manage permissions for a RAM role y RAM custom policy examples.

  3. Utilice el rol de RAM para llamar a la operación CreateTicket.

    1. Use el usuario de RAM para llamar a la operación AssumeRole y obtener un token de STS junto con un par de AccessKey. Un par de AccessKey consta de un AccessKey ID y un AccessKey secret. Los parámetros AccessKeyId y AccessKeySecret indican el AccessKey ID y el AccessKey secret, respectivamente. El parámetro SecurityToken indica el token de STS.

    2. Asuma el rol de RAM mediante el usuario de RAM con base en los parámetros SecurityToken, AccessKeySecret y AccessKeyId. Después, llame a la operación CreateTicket para obtener un ticket.

      Ejemplos de SDK

      Java

      1. Agregue las dependencias de Maven.

        Abra el archivo pom.xml ubicado en el directorio raíz de su proyecto de Java y agregue el siguiente código:

            <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. Escriba el código para obtener un ticket.

        import com.aliyun.tea.*;
        
        public class Sample {
        
            /**
             * Use your AccessKey ID and AccessKey secret to initialize a client.
             * @return Client
             * @throws Exception
             */
            public static com.aliyun.sls20201230.Client createClient() throws Exception {
                // If the project code is leaked, the AccessKey pair may be leaked and the security of all resources within your account may be compromised. The following sample code is provided only for reference. 
                // We recommend that you use STS tokens, which provide higher security. 
                com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                        // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured. 
                        .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                        // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured. 
                        .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
                // For more information about endpoints, see https://api.alibabacloud.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) {
                    // Handle exceptions with caution in your actual business scenario and do not ignore exceptions in your project. In this example, error messages are printed for reference only. 
                    // Display an error message.
                    System.out.println(error.getMessage());
                    // Display information for troubleshooting.
                    System.out.println(error.getData().get("Recommend"));
                    com.aliyun.teautil.Common.assertAsString(error.message);
                } catch (Exception _error) {
                    TeaException error = new TeaException(_error.getMessage(), _error);
                    // Handle exceptions with caution in your actual business scenario and do not ignore exceptions in your project. In this example, error messages are printed for reference only. 
                    // Display an error message.
                    System.out.println(error.getMessage());
                    // Display information for troubleshooting.
                    System.out.println(error.getData().get("Recommend"));
                    com.aliyun.teautil.Common.assertAsString(error.message);
                }
            }
        }

      Python

      # -*- coding: utf-8 -*-
      # This file is auto-generated, don't edit it. Thanks.
      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:
              """
              Use your AccessKey ID and AccessKey secret to initialize a client.
              @return: Client
              @throws Exception
              """
              # If the project code is leaked, the AccessKey pair may be leaked and the security of all resources in your account may be compromised. The following sample code is provided only for reference. 
              # We recommend that you use STS tokens, which provide higher security. For more information about authentication methods, see https://www.alibabacloud.com/help/document_detail/378659.html. 
              config = open_api_models.Config(
                  # Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured. ,
                  access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
                  # Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured. ,
                  access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
                  # Required. Make sure that the STS token is configured.
                  security_token=os.environ['ALIBABA_CLOUD_Token']
              )
              # For more information about endpoints, see https://api.alibabacloud.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:
                  # If you copy and run the sample code, add code to display the API call results.
                  client.create_ticket_with_options(create_ticket_request, headers, runtime)
              except Exception as error:
                  # Handle exceptions with caution in your actual business scenario and do not ignore exceptions in your project. In this example, error messages are printed for reference only. 
                  # Display an error message.
                  print(error.message)
                  # Display information for troubleshooting.
                  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:
                  # If you copy and run the sample code, add code to display the API call results.
                  await client.create_ticket_with_options_async(create_ticket_request, headers, runtime)
              except Exception as error:
                  # Handle exceptions with caution in your actual business scenario and do not ignore exceptions in your project. In this example, error messages are printed for reference only. 
                  # Display an error message.
                  print(error.message)
                  # Display information for troubleshooting.
                  print(error.data.get("Recommend"))
                  UtilClient.assert_as_string(error.message)
      
      if __name__ == '__main__':
          Sample.main(sys.argv[1:])
  4. Genere URL sin contraseña y sin inicio de sesión con base en los tickets obtenidos y permita distintas operaciones.

¿Por qué aparece el error InvalidMethod al llamar a la operación CreateTicket con el SDK de Simple Log Service?

Debe usar el endpoint de Simple Log Service de la región China (Shanghai) o Singapore para llamar a la operación CreateTicket. Sin embargo, una vez obtenido el ticket, lo utilizará sin importar la región.

¿Cuáles son los límites de los tickets?

  • El periodo de validez predeterminado de un ticket es de un día y el máximo es de 30 días.

  • Un ticket permite acceder a una URL únicamente desde el mismo navegador o host. Por ejemplo, si accede a una URL sin contraseña y sin inicio de sesión en el navegador A mediante un ticket, seguirá teniendo acceso hasta que expire el periodo de validez. No obstante, no podrá usar ese mismo ticket para acceder a la URL desde el navegador B.

  • No existe límite en la cantidad total de tickets. Cada cuenta puede llamar a la operación CreateTicket hasta 10 veces por segundo.

¿Cuáles son los límites de las cookies de terceros?

Es posible insertar páginas de la consola y compartir datos de registros sin recurrir a cookies de terceros. Para más información, consulte Embed console pages and share log data (new version).

¿Qué velocidad de carga tienen las páginas insertadas?

Simple Log Service ofrece versiones antigua y nueva de la función para insertar páginas de la consola y compartir datos de registros. La versión nueva carga las páginas insertadas con mayor rapidez. Para más información, consulte Embed console pages and share log data (new version).

¿Qué hago si quiero abrir varias páginas insertadas que admitan los mismos permisos de operación?

  1. Obtenga un ticket y actualice las páginas insertadas dentro del mismo navegador. Si el ticket caduca, genere uno nuevo y sustituya el vencido en todas las páginas.

  2. Los navegadores o computadoras distintos se consideran usuarios diferentes. Un ticket se usa una sola vez. Si cambia de navegador o de computadora, no podrá reutilizar el mismo ticket y aparecerá el siguiente mensaje de error:

    {"code":"TicketUnavailable","message":"There are no more tickets available.","requestId":"xxxxxx","success":false}

¿Qué hago si quiero abrir varias páginas insertadas que admitan permisos de operación distintos?

  1. Obtenga varios tickets asociados a permisos diferentes. En este caso, solo actualizará las páginas insertadas que usen el último ticket. Esto ocurre porque el sistema registra una única cookie como credencial del usuario actual y actualiza las páginas exclusivamente con esa cookie registrada, la cual corresponde al último ticket.

  2. Si no actualiza las páginas, no se requieren cookies. Podrá alternar entre páginas y ejecutar distintas operaciones en cada una.

  3. Si actualiza una página insertada que no utiliza el último ticket, aparecerá el siguiente mensaje de error:

    {"code":"TicketUnavailable","message":"There are no more tickets available.","requestId":"xxxxxx","success":false}