Todos os produtos
Search
Central de documentação

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

Última atualização: Jul 03, 2026

Este tópico descreve como compartilhar páginas de resultados de consulta e análise e painéis do Simple Log Service com outros usuários. Também explica como incorporar páginas do console do Simple Log Service em sistemas de terceiros. Assim, os usuários visualizam seus logs no modo sem senha e sem login. As URLs das páginas compartilhadas são denominadas URLs sem senha e sem login.

Informações básicas

Um ticket é um token válido por um curto período, utilizado para gerar uma URL sem senha e sem login. Com essa URL, o usuário acessa diretamente as páginas especificadas de consulta e análise ou de painel, 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

Em uma URL sem senha e sem login, as operações disponíveis na página de destino variam conforme as permissões do chamador da operação CreateTicket no Simple Log Service. Para mitigar riscos de segurança de dados ao usar uma conta Alibaba Cloud para chamar a operação CreateTicket, recomendamos utilizar um usuário RAM para invocar a operação CreateTicket e conceder permissões a esse usuário seguindo o princípio do menor privilégio. Para mais informações, consulte Etapa 1: Conceder as permissões necessárias a um usuário RAM.

Gerar uma URL sem senha e sem login

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

Se você utiliza uma conta Alibaba Cloud, pule esta etapa e acesse a Etapa 2.

  1. Crie um usuário RAM.

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

    1. Para mais detalhes sobre como conceder permissões em recursos específicos, consulte Exemplos de políticas personalizadas do RAM.

    2. Para saber como conceder permissões para chamar a operação CreateTicket, consulte Gerencie permissões de usuário RAM e Crie uma política personalizada.

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

Etapa 2: Obter 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 Gerencie projetos. Sobre nomes de Logstores, veja Gerencie Logstores. Quanto às regiões suportadas pelos projetos, verifique 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 do painel:

    Importante

    O Dashboard ID aparece apenas na URL da página do painel. Esse ID não corresponde ao nome exibido no painel. É possível compartilhar páginas de painel no modo sem senha diretamente pelo console do Simple Log Service. Para mais detalhes, consulte Compartilhar painéis ou gráficos sem senhas.

    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: Obter um ticket

Importante
  • Para chamar a operação CreateTicket e obter um ticket, utilize o endpoint do Simple Log Service da região China (Shanghai) ou Singapore. Depois de obtido, o ticket funciona independentemente da região.

  • Cada ticket tem uso único. O período de validade padrão é de um dia, podendo chegar a 30 dias no máximo. Para obter tickets dinamicamente, consulte Como o sistema obtém um ticket dinamicamente?

image

Etapa 4: Gerar uma URL sem senha e sem login

  1. Concatene o ticket obtido na Etapa 3 com a URL da página do console do Simple Log Service obtida na Etapa 2 para gerar a 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 navegador para validá-la. Se a página do console do Simple Log Service carregar corretamente, a URL será válida.

    Aviso
    • Ao acessar uma URL sem senha e sem login pela primeira vez no navegador, você consegue testá-la. Após o teste, o ticket torna-se inválido. Nesse caso, chame novamente a operação CreateTicket para obter um novo ticket.

    • Recomendamos copiar a URL sem senha e sem login para um arquivo e transferir esse arquivo. Caso envie a URL diretamente para um software de terceiros, ela pode se tornar inválida assim que o software a ler.

Perguntas frequentes

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

Para mais informações, consulte Estender o período de validade das URLs para páginas incorporadas do console.

Como um ticket é gerado dinamicamente?

Para incorporar páginas do console do Simple Log Service em sistemas de terceiros, sua aplicação deve chamar dinamicamente a operação CreateTicket para obter tickets periodicamente. Utilizar um par de AccessKey de um usuário RAM para chamar a operação CreateTicket simplifica o processo, mas aumenta os riscos de segurança. Recomendamos usar uma função RAM com um token do Security Token Service (STS) para invocar a operação CreateTicket e reduzir esses riscos.

  1. Crie um usuário RAM e crie uma função RAM cuja entidade confiável seja uma conta Alibaba Cloud.

  2. Conceda a permissão AliyunSTSAssumeRoleAccess ao usuário RAM. Atribua à função RAM as permissões para chamar a operação CreateTicket e as permissões relacionadas ao Simple Log Service. Para mais detalhes, consulte Gerencie permissões para uma função RAM e Exemplos de políticas personalizadas do RAM.

  3. Utilize 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 junto com um par de AccessKey. O par de AccessKey consiste em um AccessKey ID e um AccessKey secret. Os parâmetros AccessKeyId e AccessKeySecret definem, respectivamente, o AccessKey ID e o AccessKey secret. Já o parâmetro SecurityToken especifica o token STS.

    2. Faça com que o usuário RAM assuma a função RAM usando os parâmetros SecurityToken, AccessKeySecret e AccessKeyId. Em seguida, chame a operação CreateTicket para obter um ticket.

      SDK examples

      Java

      1. Adicione as dependências 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.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) {
                    // 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.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:
                  # 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 diferentes operações.

Por que recebo o erro InvalidMethod ao usar o SDK do Simple Log Service para chamar a operação CreateTicket?

É obrigatório usar o endpoint do Simple Log Service da região China (Shanghai) ou Singapore para chamar a operação CreateTicket. No entanto, após obter o ticket, ele funciona independentemente da região.

Quais são os limites dos tickets?

  • A validade padrão de um ticket é de um dia, com limite máximo de 30 dias.

  • Um ticket permite 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á continuar acessando essa URL até que a validade do ticket expire. Contudo, não será possível usar o mesmo ticket para acessar a URL no Navegador B.

  • Não há limite para o número total de tickets. Cada conta pode chamar a operação CreateTicket até 10 vezes por segundo.

Quais são as restrições sobre cookies de terceiros?

É possível incorporar páginas do console e compartilhar dados de log sem depender de cookies de terceiros. Para mais informações, consulte Incorporar páginas do console e compartilhar dados de log (nova versão).

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

O Simple Log Service oferece versões antiga e nova do recurso de incorporação de páginas do console e compartilhamento de dados de log. Ao utilizar a nova versão, as páginas incorporadas carregam mais rapidamente. Para mais detalhes, consulte Incorporar páginas do console e compartilhar dados de log (nova versão).

O que fazer para abrir várias páginas incorporadas com as mesmas permissões de operação?

  1. Obtenha um ticket e atualize as páginas incorporadas no mesmo navegador. Caso o ticket expire, obtenha um novo e substitua o ticket expirado pelo novo em todas as páginas.

  2. Navegadores ou computadores diferentes são tratados como usuários distintos. Como cada ticket tem uso único, tentar usar o mesmo ticket em outro navegador ou computador resultará na seguinte mensagem de erro:

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

O que fazer para abrir várias páginas incorporadas com permissões de operação diferentes?

  1. É possível obter vários tickets associados a permissões diferentes. No entanto, nesse cenário, apenas as páginas incorporadas que utilizam o último ticket podem ser atualizadas. Isso ocorre porque o sistema registra apenas um cookie como credencial do usuário atual e atualiza as páginas exclusivamente com base nesse cookie registrado, que corresponde ao último ticket.

  2. Se não houver atualização de páginas, os cookies não são necessários. Você pode alternar entre as páginas e executar operações distintas em cada uma delas.

  3. Ao atualizar uma página incorporada que não utiliza o último ticket, o sistema retorna a seguinte mensagem de erro:

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