Todos os produtos
Search
Central de documentação

Simple Log Service:Incorpore páginas do console e compartilhe dados de log (nova versão)

Última atualização: Sep 22, 2026

Este tópico descreve como compartilhar as páginas de resultados de consulta e análise e as páginas de painel do Simple Log Service com outros usuários, além de como incorporar as páginas do console do Simple Log Service em sistemas de terceiros. Dessa forma, os usuários podem visualizar seus logs no modo sem senha e sem login. As URLs das páginas compartilhadas são chamadas de URLs sem senha e sem login.

Informações de fundo

Um ticket é um token válido por um curto período de tempo. Ele é usado para gerar uma URL sem senha e sem login. Após obter uma URL sem senha e sem login, o usuário pode acessar diretamente as páginas de consulta e análise ou de painel especificadas, sem precisar fazer login no console do Simple Log Service com uma conta Alibaba Cloud.

Procedimento:

  1. Conceda as permissões necessárias a um usuário do Resource Access Management (RAM).

  2. Obtenha a URL de uma página do console do Simple Log Service.

  3. Chame a operação CreateTicket para obter um ticket.

  4. Gere uma URL sem senha e sem login com base no ticket e na URL da página do console do Simple Log Service.

Aviso

Para uma URL sem senha e sem login, as operações que podem ser executadas na página de destino variam de acordo com as permissões do chamador da operação CreateTicket no Simple Log Service. Para mitigar os riscos de segurança de dados ao usar uma conta Alibaba Cloud para chamar a operação CreateTicket, recomendamos o uso de um usuário RAM para chamar a operação CreateTicket e a concessão de permissões a esse usuário com base no princípio do menor privilégio. Para mais informações, consulte Step 1: Grant the required permissions to a RAM user.

Gere uma URL sem senha e sem login

Etapa 1: Conceda as permissões necessárias a um usuário RAM

Caso utilize uma conta Alibaba Cloud, pule esta etapa e acesse a Etapa 2.

  1. Create a RAM user.

  2. Conceda ao usuário RAM as permissões sobre recursos como projetos e Logstores, além das permissões para chamar a operação CreateTicket.

    1. Para mais informações sobre como conceder permissões em recursos específicos, consulte RAM custom policy examples.

    2. Para mais informações sobre como conceder permissões para chamar a operação CreateTicket, consulte Manage RAM user permissions e Create a custom policy.

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

Etapa 2: Obtenha a URL de uma página do console do Simple Log Service

  • Página de consulta e análise:

    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 mais informações sobre nomes de projetos, consulte Manage projects. Para mais informações sobre nomes de Logstores, consulte Manage Logstores. Para mais informações sobre as regiões suportadas para projetos, consulte a coluna Region ID em 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 de painel:

    Importante

    Dashboard ID é exibido apenas na URL de uma página de painel. O ID não é o nome exibido no painel. Você pode compartilhar páginas de painel no modo sem senha no console do Simple Log Service. Para mais informações, 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

Etapa 3: Obtenha um ticket

Importante
  • Para chamar a operação CreateTicket e obter um ticket, você deve usar o endpoint do Simple Log Service para a região China (Shanghai) ou Singapore. Após obter o ticket, você pode usá-lo independentemente da região.

  • Um ticket pode ser usado apenas uma vez. O período de validade padrão é de um dia, e o período máximo é de 30 dias. Para mais informações sobre como obter um ticket dinamicamente, consulte How does the system dynamically obtain a ticket?

image

Etapa 4: Gere uma URL sem senha e sem login

  1. Concatene o ticket obtido na Etapa 3 e a URL da página do console do Simple Log Service obtida na Etapa 2 para gerar uma URL sem senha e sem login.

    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. Teste a URL sem senha e sem login. Insira a URL na barra de endereços do seu navegador para testá-la. Se você conseguir acessar a página do console do Simple Log Service, a URL é válida.

    Aviso
    • Na primeira vez que você acessar uma URL sem senha e sem login em um navegador, poderá testar a URL. Após a conclusão do teste, o ticket se torna inválido. Você deve chamar a operação CreateTicket novamente para obter um novo ticket.

    • Recomendamos copiar a URL sem senha e sem login para um arquivo e transferir o arquivo. Se você enviar diretamente a URL sem senha e sem login para um software de terceiros, ela poderá se tornar inválida após o software lê-la.

Perguntas frequentes

Como estender os períodos de validade das URLs para páginas do console incorporadas?

Para mais informações, consulte Extend the validity periods of URLs to embedded console pages.

Como um ticket é gerado dinamicamente?

Para incorporar páginas do console do Simple Log Service em sistemas de terceiros, você deve chamar dinamicamente a operação CreateTicket em sua aplicação para obter um ticket regularmente. Se você usar um par de AccessKey de um usuário RAM para chamar a operação CreateTicket, o procedimento é simples, mas apresenta altos riscos de segurança. Recomendamos o uso de uma função RAM que possua um token do Security Token Service (STS) para chamar a operação CreateTicket. Isso reduz os riscos de segurança.

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

  2. Conceda a permissão AliyunSTSAssumeRoleAccess ao usuário RAM. Conceda as permissões para chamar a CreateTicket operação e as permissões relacionadas ao Simple Log Service à função RAM. Para mais informações, consulte Manage permissions for a RAM role e RAM custom policy examples.

  3. Use a função RAM para chamar a operação CreateTicket.

    1. Use o usuário RAM para chamar a operação AssumeRole e obter um token STS e um par de AccessKey. Um par de AccessKey consiste em um AccessKey ID e um AccessKey secret. Os parâmetros AccessKeyId e AccessKeySecret especificam o AccessKey ID e o AccessKey secret. O parâmetro SecurityToken especifica o token STS.

    2. Use o usuário RAM para assumir a função RAM com base nos parâmetros SecurityToken, AccessKeySecret e AccessKeyId. Em seguida, chame a operação CreateTicket para obter um ticket.

      Exemplos de SDK

      Java

      1. Adicione as dependências do Maven.

        Abra o arquivo pom.xml no diretório raiz do seu projeto Java e adicione o seguinte 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. Escreva o código para obter um 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. Gere URLs sem senha e sem login com base nos tickets obtidos e permita operações diferentes.

Por que o erro InvalidMethod é relatado quando uso o SDK do Simple Log Service para chamar a operação CreateTicket?

Você deve usar o endpoint do Simple Log Service para a região China (Shanghai) ou Singapore para chamar a operação CreateTicket. No entanto, após obter o ticket, você pode usá-lo independentemente da região.

Quais são os limites dos tickets?

  • O período de validade padrão de um ticket é de um dia, e o período máximo é de 30 dias.

  • Você pode usar um ticket para acessar uma URL apenas no mesmo navegador ou host. Por exemplo, se você acessar uma URL sem senha e sem login no Navegador A usando um ticket, poderá acessar continuamente a URL antes do fim do período de validade do ticket. No entanto, não é possível usar o ticket para acessar a URL no Navegador B.

  • O número total de tickets é ilimitado. Você pode chamar a operação CreateTicket até 10 vezes por segundo por conta.

Quais são os limites para cookies de terceiros?

Você pode incorporar páginas do console e compartilhar dados de log sem a necessidade de usar cookies de terceiros. Para mais informações, consulte Embed console pages and share log data (new version).

Qual é a velocidade de carregamento das páginas incorporadas?

O Simple Log Service oferece versões antiga e nova do recurso para incorporar páginas do console e compartilhar dados de log. Se você usar a nova versão, as páginas incorporadas poderão ser carregadas mais rapidamente. Para mais informações, consulte Embed console pages and share log data (new version).

O que fazer se eu quiser abrir várias páginas incorporadas que suportam as mesmas permissões de operação?

  1. Você pode obter um ticket e atualizar as páginas incorporadas no mesmo navegador. Se o ticket expirar, obtenha um novo ticket e substitua o ticket expirado pelo novo em todas as páginas.

  2. Navegadores ou computadores diferentes são considerados usuários diferentes. Um ticket pode ser usado apenas uma vez. Se você usar um navegador ou computador diferente, não poderá usar o mesmo ticket, e a seguinte mensagem de erro será retornada:

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

O que fazer se eu quiser abrir várias páginas incorporadas que suportam permissões de operação diferentes?

  1. Você pode obter vários tickets associados a permissões diferentes. No entanto, neste caso, você só pode atualizar as páginas incorporadas que usam o último ticket. Isso ocorre porque o sistema registra apenas um cookie como credencial do usuário atual e atualiza as páginas apenas com base no cookie registrado. O cookie registrado corresponde ao último ticket.

  2. Se você não atualizar as páginas, os cookies não serão necessários. Você pode alternar entre as páginas e executar operações diferentes em páginas diferentes.

  3. Se você atualizar uma página incorporada que não usa o último ticket, a seguinte mensagem de erro será retornada:

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