

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Incorporação de painéis para todos os usuários de GetDashboardEmbedURL (API antiga)
<a name="embedded-analytics-dashboards-with-anonymous-users-get"></a>

**Importante**  
O Amazon Quick Sight tem novidades APIs para incorporar análises: `GenerateEmbedUrlForAnonymousUser` e. `GenerateEmbedUrlForRegisteredUser`  
Você ainda pode usar o `GetDashboardEmbedUrl` e `GetSessionEmbedUrl` APIs para incorporar painéis e o console Amazon Quick Sight, mas eles não contêm os recursos de incorporação mais recentes. Para obter a experiência de up-to-date incorporação mais recente, consulte [Incorporação da análise do Amazon Quick Sight em seus aplicativos](https://docs.aws.amazon.com/quicksight/latest/user/embedding-overview.html).


|  | 
| --- |
|  Aplica-se a: Enterprise Edition  | 


|  | 
| --- |
|    Público-alvo: desenvolvedores do Amazon Quick  | 

Nas seções a seguir, você encontrará informações detalhadas sobre como configurar painéis incorporados do Amazon Quick Sight para todos (usuários não autenticados) usando URL. GetDashboardEmbed

**Topics**
+ [Etapa 1: configurar permissões](embedded-analytics-dashboards-with-anonymous-users-get-step-1.md)
+ [Etapa 2: obter o URL com o código de autenticação anexado](embedded-analytics-dashboards-with-anonymous-users-get-step-2.md)
+ [Etapa 3: incorporar o URL do painel](embedded-analytics-dashboards-with-anonymous-users-get-step-3.md)

# Etapa 1: configurar permissões
<a name="embedded-analytics-dashboards-with-anonymous-users-get-step-1"></a>

**Importante**  
O Amazon Quick Sight tem novidades APIs para incorporar análises: `GenerateEmbedUrlForAnonymousUser` e. `GenerateEmbedUrlForRegisteredUser`  
Você ainda pode usar o `GetDashboardEmbedUrl` e `GetSessionEmbedUrl` APIs para incorporar painéis e o console Amazon Quick Sight, mas eles não contêm os recursos de incorporação mais recentes. Para obter a experiência de up-to-date incorporação mais recente, consulte [Incorporação da análise do Amazon Quick Sight em seus aplicativos](https://docs.aws.amazon.com/quicksight/latest/user/embedding-overview.html).


|  | 
| --- |
|  Aplica-se a: Enterprise Edition  | 


|  | 
| --- |
|    Público-alvo: desenvolvedores do Amazon Quick  | 

Na seção a seguir, você descobrirá como configurar permissões para a aplicação de back-end ou para o servidor Web. Essa tarefa requer acesso administrativo à IAM.

Cada usuário que acessa um painel assume uma função que lhe dá acesso e permissões ao Amazon Quick Sight para o painel. Para tornar isso possível, crie uma função do IAM em sua AWS conta. Associe uma política do IAM à função, para fornecer permissões a qualquer usuário que a assumir.

O exemplo de política apresentado a seguir fornece essas permissões para uso com `IdentityType=ANONYMOUS`. Para que essa abordagem funcione, você também precisa de um pacote de sessão, ou preço da capacidade da sessão, em sua AWS conta. Caso contrário, quando um usuário tentar acessar o painel, o erro `UnsupportedPricingPlanException` será retornado. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
              "quicksight:GetDashboardEmbedUrl",
              "quickSight:GetAnonymousUserEmbedUrl"
            ],
            "Resource": "*"
        }
    ]
}
```

------

A identidade do IAM da sua aplicação deve ter uma política de confiança associada a ela, para permitir acesso ao perfil que você acabou de criar. Isso significa que, quando um usuário acessar a aplicação, ele poderá assumir o perfil em nome do usuário para abrir o painel. O exemplo a seguir mostra uma função chamada `QuickSightEmbeddingAnonymousPolicy`, que tem o exemplo de política antes do recurso. 

Para obter mais informações sobre as políticas de confiança, consulte [Credenciais de segurança temporárias no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) no *Guia do usuário do IAM*.

# Etapa 2: obter o URL com o código de autenticação anexado
<a name="embedded-analytics-dashboards-with-anonymous-users-get-step-2"></a>

**Importante**  
O Amazon Quick Sight tem novidades APIs para incorporar análises: `GenerateEmbedUrlForAnonymousUser` e. `GenerateEmbedUrlForRegisteredUser`  
Você ainda pode usar o `GetDashboardEmbedUrl` e `GetSessionEmbedUrl` APIs para incorporar painéis e o console Amazon Quick Sight, mas eles não contêm os recursos de incorporação mais recentes. Para obter a experiência de up-to-date incorporação mais recente, consulte [Incorporação da análise do Amazon Quick Sight em seus aplicativos](https://docs.aws.amazon.com/quicksight/latest/user/embedding-overview.html).


|  | 
| --- |
|  Aplica-se a: Enterprise Edition  | 


|  | 
| --- |
|    Público-alvo: desenvolvedores do Amazon Quick  | 

Na seção apresentada a seguir, você descobrirá como realizar a autenticação em nome do visitante anônimo e obter o URL do painel incorporável em seu servidor de aplicações. 

Quando um usuário acessa a aplicação, ela assume o perfil do IAM em nome do usuário. Em seguida, ele adiciona o usuário ao Amazon Quick Sight, se esse usuário ainda não existir. Depois disso, ela transfere um identificador como o ID exclusivo de sessão do usuário. 

Os exemplos a seguir executam a autenticação do IAM em nome do usuário. Um identificador é transferido como o ID exclusivo de sessão do usuário. Este código é executado no servidor da aplicação.

------
#### [ Java ]

```
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.quicksight.AmazonQuickSight;
import com.amazonaws.services.quicksight.AmazonQuickSightClientBuilder;
import com.amazonaws.services.quicksight.model.GetDashboardEmbedUrlRequest;
import com.amazonaws.services.quicksight.model.GetDashboardEmbedUrlResult;

/**
 * Class to call QuickSight AWS SDK to get url for dashboard embedding.
 */
public class GetQuicksightEmbedUrlNoAuth {

    private static String ANONYMOUS = "ANONYMOUS";

    private final AmazonQuickSight quickSightClient;

    public GetQuicksightEmbedUrlNoAuth() {
        this.quickSightClient = AmazonQuickSightClientBuilder
                .standard()
                .withRegion(Regions.US_EAST_1.getName())
                .withCredentials(new AWSCredentialsProvider() {
                                     @Override
                                     public AWSCredentials getCredentials() {
                                         // provide actual IAM access key and secret key here
                                         return new BasicAWSCredentials("access-key", "secret-key");
                                     }

                                     @Override
                                     public void refresh() {}
                                 }
                )
                .build();
    }

    public String getQuicksightEmbedUrl(
            final String accountId, // YOUR AWS ACCOUNT ID
            final String dashboardId, // YOUR DASHBOARD ID TO EMBED
            final String addtionalDashboardIds, // ADDITIONAL DASHBOARD-1 ADDITIONAL DASHBOARD-2
            final boolean resetDisabled, // OPTIONAL PARAMETER TO ENABLE DISABLE RESET BUTTON IN EMBEDDED DASHBAORD
            final boolean undoRedoDisabled // OPTIONAL PARAMETER TO ENABLE DISABLE UNDO REDO BUTTONS IN EMBEDDED DASHBAORD
    ) throws Exception {
        GetDashboardEmbedUrlRequest getDashboardEmbedUrlRequest = new GetDashboardEmbedUrlRequest()
                .withDashboardId(dashboardId)
                .withAdditionalDashboardIds(addtionalDashboardIds)
                .withAwsAccountId(accountId)
                .withNamespace("default") // Anonymous embedding requires specifying a valid namespace for which you want the embedding url
                .withIdentityType(ANONYMOUS)
                .withResetDisabled(resetDisabled)
                .withUndoRedoDisabled(undoRedoDisabled);

        GetDashboardEmbedUrlResult dashboardEmbedUrl = quickSightClient.getDashboardEmbedUrl(getDashboardEmbedUrlRequest);

        return dashboardEmbedUrl.getEmbedUrl();
    }
}
```

------
#### [ JavaScript ]

```
global.fetch = require('node-fetch');
const AWS = require('aws-sdk');

function getDashboardEmbedURL(
    accountId, // YOUR AWS ACCOUNT ID
    dashboardId, // YOUR DASHBOARD ID TO EMBED
    additionalDashboardIds, // ADDITIONAL DASHBOARD-1 ADDITIONAL DASHBOARD-2
    quicksightNamespace, // VALID NAMESPACE WHERE YOU WANT TO DO NOAUTH EMBEDDING
    resetDisabled, // OPTIONAL PARAMETER TO ENABLE DISABLE RESET BUTTON IN EMBEDDED DASHBAORD
    undoRedoDisabled, // OPTIONAL PARAMETER TO ENABLE DISABLE UNDO REDO BUTTONS IN EMBEDDED DASHBAORD
    getEmbedUrlCallback, // GETEMBEDURL SUCCESS CALLBACK METHOD
    errorCallback // GETEMBEDURL ERROR CALLBACK METHOD
    ) {
    const getDashboardParams = {
        AwsAccountId: accountId,
        DashboardId: dashboardId,
        AdditionalDashboardIds: additionalDashboardIds,
        Namespace: quicksightNamespace,
        IdentityType: 'ANONYMOUS',
        ResetDisabled: resetDisabled,
        SessionLifetimeInMinutes: 600,
        UndoRedoDisabled: undoRedoDisabled
    };

    const quicksightGetDashboard = new AWS.QuickSight({
        region: process.env.AWS_REGION,
    });

    quicksightGetDashboard.getDashboardEmbedUrl(getDashboardParams, function(err, data) {
        if (err) {
            console.log(err, err.stack);
            errorCallback(err);
        } else {
            const result = {
                "statusCode": 200,
                "headers": {
                    "Access-Control-Allow-Origin": "*", // USE YOUR WEBSITE DOMAIN TO SECURE ACCESS TO GETEMBEDURL API
                    "Access-Control-Allow-Headers": "Content-Type"
                },
                "body": JSON.stringify(data),
                "isBase64Encoded": false
            }
            getEmbedUrlCallback(result);
        }
    });
}
```

------
#### [ Python3 ]

```
import json
import boto3
from botocore.exceptions import ClientError
import time

# Create QuickSight and STS clients
qs = boto3.client('quicksight',region_name='us-east-1')
sts = boto3.client('sts')

# Function to generate embedded URL
# accountId: YOUR AWS ACCOUNT ID
# dashboardId: YOUR DASHBOARD ID TO EMBED
# additionalDashboardIds: ADDITIONAL DASHBOARD-1 ADDITIONAL DASHBOARD-2 WITHOUT COMMAS
# quicksightNamespace: VALID NAMESPACE WHERE YOU WANT TO DO NOAUTH EMBEDDING
# resetDisabled: PARAMETER TO ENABLE DISABLE RESET BUTTON IN EMBEDDED DASHBAORD
# undoRedoDisabled: OPTIONAL PARAMETER TO ENABLE DISABLE UNDO REDO BUTTONS IN EMBEDDED DASHBAORD
def getDashboardURL(accountId, dashboardId, quicksightNamespace, resetDisabled, undoRedoDisabled):
    try:
        response = qs.get_dashboard_embed_url(
            AwsAccountId = accountId,
            DashboardId = dashboardId,
            AdditionalDashboardIds = additionalDashboardIds,
            Namespace = quicksightNamespace,
            IdentityType = 'ANONYMOUS',
            SessionLifetimeInMinutes = 600,
            UndoRedoDisabled = undoRedoDisabled,
            ResetDisabled = resetDisabled
        )
            
        return {
            'statusCode': 200,
            'headers': {"Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Content-Type"},
            'body': json.dumps(response),
            'isBase64Encoded':  bool('false')
        }
    except ClientError as e:
        print(e)
        return "Error generating embeddedURL: " + str(e)
```

------
#### [ Node.js ]

O exemplo a seguir mostra o JavaScript (Node.js) que você pode usar no servidor do aplicativo para obter a URL do painel incorporado. Você pode usar esse URL no seu site ou aplicativo para exibir o painel. 

**Example**  

```
const AWS = require('aws-sdk');
            const https = require('https');
            
            var quicksight = new AWS.Service({
                apiConfig: require('./quicksight-2018-04-01.min.json'),
                region: 'us-east-1',
            });
            
            quicksight.getDashboardEmbedUrl({
                'AwsAccountId': '111122223333',
                'DashboardId': 'dashboard-id',
                'AdditionalDashboardIds': 'added-dashboard-id-1 added-dashboard-id-2 added-dashboard-id-3'
                'Namespace' : 'default',
                'IdentityType': 'ANONYMOUS',
                'SessionLifetimeInMinutes': 100,
                'UndoRedoDisabled': false,
                'ResetDisabled': true
            
            }, function(err, data) {
                console.log('Errors: ');
                console.log(err);
                console.log('Response: ');
                console.log(data);
            });
```

**Example**  

```
//The URL returned is over 900 characters. For this example, we've shortened the string for
            //readability and added ellipsis to indicate that it's incomplete.
                                { Status: 200,
              EmbedUrl: 'https://dashboards.example.com/embed/620bef10822743fab329fb3751187d2d…
              RequestId: '7bee030e-f191-45c4-97fe-d9faf0e03713' }
```

------
#### [ .NET/C\$1 ]

O exemplo a seguir mostra o código.NET/C \$1 que você pode usar no servidor de aplicativo para obter o URL para o painel incorporado. Você pode usar esse URL no seu site ou aplicativo para exibir o painel. 

**Example**  

```
            var client = new AmazonQuickSightClient(
                AccessKey,
                SecretAccessKey,
                sessionToken,
                Amazon.RegionEndpoint.USEast1);
            try
            {
                Console.WriteLine(
                    client.GetDashboardEmbedUrlAsync(new GetDashboardEmbedUrlRequest
                    {
                        AwsAccountId = “111122223333”,
                        DashboardId = "dashboard-id",
                        AdditionalDashboardIds = "added-dashboard-id-1 added-dashboard-id-2 added-dashboard-id-3",
                        Namespace = default,
                        IdentityType = IdentityType.ANONYMOUS,
                        SessionLifetimeInMinutes = 600,
                        UndoRedoDisabled = false,
                        ResetDisabled = true
                    }).Result.EmbedUrl
                );
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }
```

------
#### [ AWS CLI ]

Para assumir a função, escolha uma das seguintes operações de API AWS Security Token Service (AWS STS):
+ [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)— Use essa operação quando estiver usando uma identidade do IAM para assumir a função.
+ [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)— Use essa operação quando estiver usando um provedor de identidade da web para autenticar seu usuário. 
+ [AssumeRoleWithSaml](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)— Use essa operação quando estiver usando o Security Assertion Markup Language (SAML) para autenticar seus usuários.

O exemplo a seguir mostra o comando da CLI que define a função do IAM. O perfil precisa ter permissões habilitadas para `quicksight:GetDashboardEmbedURL`. 

```
aws sts assume-role \
     --role-arn "arn:aws:iam::11112222333:role/QuickSightEmbeddingAnonymousPolicy" \
     --role-session-name anonymous caller
```

A operação `assume-role` retorna três parâmetros de saída: a chave de acesso, a chave secreta e o token da sessão. 

**nota**  
Se você receber um erro `ExpiredToken` ao chamar a operação `AssumeRole`, isso provavelmente ocorre porque o `SESSION TOKEN` anterior ainda está nas variáveis de ambiente. Resolva isso definindo as seguintes variáveis:  
*AWS\$1ACCESS\$1KEY\$1ID* 
*AWS\$1SECRET\$1CHAVE DE ACESSO* 
*AWS\$1SESSION\$1TOKEN* 

O exemplo a seguir mostra como definir esses três parâmetros na CLI. Se você estiver usando uma máquina com Microsoft Windows, use `set` em vez de `export`.

```
export AWS_ACCESS_KEY_ID     = "access_key_from_assume_role"
export AWS_SECRET_ACCESS_KEY = "secret_key_from_assume_role"
export AWS_SESSION_TOKEN     = "session_token_from_assume_role"
```

Executar esses comandos define o ID da sessão da função do usuário que está acessando o site `embedding_quicksight_dashboard_role/QuickSightEmbeddingAnonymousPolicy`. O ID da sessão da função é composto pelo nome da função a partir de `role-arn` e o valor de `role-session-name`. Usar o ID exclusivo de sessão do perfil para cada usuário garante que as permissões apropriadas sejam definidas para todos os usuários visitantes. Essa ação também mantém cada sessão separada e distinta. Se você estiver usando uma série de servidores Web, por exemplo, para balanceamento de carga, e uma sessão for reconectada a um servidor diferente, uma nova sessão será iniciada.

Para obter um URL assinado para o painel, chame `get-dashboard-embed-url` usando o servidor de aplicações. Isso retorna o URL do painel incorporável. O exemplo a seguir mostra como obter o URL para um painel incorporado usando uma chamada do lado do servidor para usuários que estão fazendo visitas anônimas ao seu portal da Web ou à sua aplicação.

```
aws quicksight get-dashboard-embed-url \
     --aws-account-id 111122223333 \
     --dashboard-id dashboard-id \
     --additional-dashboard-ids added-dashboard-id-1 added-dashboard-id-2 added-dashboard-id-3
     --namespace default-or-something-else \
     --identity-type ANONYMOUS \
     --session-lifetime-in-minutes 30 \
     --undo-redo-disabled true \
     --reset-disabled true \
     --user-arn arn:aws:quicksight:us-east-1:111122223333:user/default/QuickSightEmbeddingAnonymousPolicy/embeddingsession
```

Para obter mais informações sobre essa operação, consulte [https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GetDashboardEmbedUrl.html](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GetDashboardEmbedUrl.html). Você pode usar essa e outras operações de API no seu próprio código. 

------

# Etapa 3: incorporar o URL do painel
<a name="embedded-analytics-dashboards-with-anonymous-users-get-step-3"></a>

**Importante**  
O Amazon Quick Sight tem novidades APIs para incorporar análises: `GenerateEmbedUrlForAnonymousUser` e. `GenerateEmbedUrlForRegisteredUser`  
Você ainda pode usar o `GetDashboardEmbedUrl` e `GetSessionEmbedUrl` APIs para incorporar painéis e o console Amazon Quick Sight, mas eles não contêm os recursos de incorporação mais recentes. Para obter a experiência de up-to-date incorporação mais recente, consulte [Incorporação da análise do Amazon Quick Sight em seus aplicativos](https://docs.aws.amazon.com/quicksight/latest/user/embedding-overview.html).


|  | 
| --- |
|  Aplica-se a: Enterprise Edition  | 


|  | 
| --- |
|    Público-alvo: desenvolvedores do Amazon Quick  | 

Na seção a seguir, você pode descobrir como usar o [SDK de incorporação do Amazon Quick Sight (JavaScript) para incorporar](https://www.npmjs.com/package/amazon-quicksight-embedding-sdk) a URL do painel a partir da etapa 2 em seu site ou página de aplicativo. Com o SDK, você pode fazer o seguinte: 
+ Coloque o painel em uma página HTML.
+ Adicione parâmetros ao painel.
+ Corrija os estados de erro com mensagens que são personalizados para seu aplicativo.

Chame a operação de API `GetDashboardEmbedUrl` para obter o URL que você pode incorporar à aplicação. Este URL é válido por 5 minutos, e a sessão resultante é válida por 10 horas. A operação de API fornece ao URL um `auth_code` que possibilita uma sessão de logon único. 

Veja a seguir uma resposta de exemplo de `get-dashboard-embed-url`.

```
//The URL returned is over 900 characters. For this example, we've shortened the string for
//readability and added ellipsis to indicate that it's incomplete.
{
     "Status": "200",
     "EmbedUrl": "https: //dashboards.example.com/embed/620bef10822743fab329fb3751187d2d...",
     "RequestId": "7bee030e-f191-45c4-97fe-d9faf0e03713"
}
```

Incorpore esse painel em sua página da web usando o Amazon Quick Sight [Embedding SDK](https://www.npmjs.com/package/amazon-quicksight-embedding-sdk) ou adicionando essa URL em um iframe. Se você definir um número fixo de altura e largura (em pixels), o Amazon Quick Sight os usará e não alterará seu visual à medida que sua janela é redimensionada. Se você definir uma porcentagem relativa de altura e largura, o Amazon Quick Sight fornece um layout responsivo que é modificado conforme o tamanho da janela muda. Ao usar o Amazon Quick Sight Embedding SDK, você também pode controlar os parâmetros no painel e receber retornos de chamada em termos de conclusão do carregamento da página e erros. 

O exemplo a seguir mostra como usar o URL gerado. Este código reside no seu servidor de aplicações.

```
<!DOCTYPE html>
<html>

<head>
    <title>Basic Embed</title>
    <!-- You can download the latest QuickSight embedding SDK version from https://www.npmjs.com/package/amazon-quicksight-embedding-sdk -->
    <!-- Or you can do "npm install amazon-quicksight-embedding-sdk", if you use npm for javascript dependencies -->
    <script src="./quicksight-embedding-js-sdk.min.js"></script>
    <script type="text/javascript">
        var dashboard;

        function embedDashboard() {
            var containerDiv = document.getElementById("embeddingContainer");
            var options = {
                // replace this dummy url with the one generated via embedding API
                url: "https://us-east-1.quicksight.aws.amazon.com/sn/dashboards/dashboardId?isauthcode=true&identityprovider=quicksight&code=authcode",  
                container: containerDiv,
                scrolling: "no",
                height: "700px",
                width: "1000px",
                footerPaddingEnabled: true
            };
            dashboard = QuickSightEmbedding.embedDashboard(options);
        }
    </script>
</head>

<body onload="embedDashboard()">
    <div id="embeddingContainer"></div>
</body>

</html>
```

Para que este exemplo funcione, certifique-se de usar o Amazon Quick Sight Embedding SDK para carregar o painel incorporado em seu site usando. JavaScript Para obter sua cópia, siga um destes procedimentos:
+ Baixe o [SDK de incorporação do Amazon Quick Sight](https://github.com/awslabs/amazon-quicksight-embedding-sdk#step-3-create-the-quicksight-session-object) em. GitHub Esse repositório é mantido por um grupo de desenvolvedores do Amazon Quick Sight.
+ Baixe a versão mais recente do SDK QuickSight de incorporação em. [https://www.npmjs.com/package/amazon-quicksight-embedding-sdk](https://www.npmjs.com/package/amazon-quicksight-embedding-sdk)
+ Se você usa `npm` para JavaScript dependências, faça o download e instale-o executando o comando a seguir.

  ```
  npm install amazon-quicksight-embedding-sdk
  ```