Tutorial de análises de dados incorporadas

com o Amazon QuickSight

Módulo seis: Configuração de usuário e domínio do QuickSight

Neste módulo, registraremos um usuário de demonstração, criaremos um grupo incorporado de leitores e adicionaremos esse usuário ao grupo.

Introdução

Neste módulo, criaremos e registraremos um usuário de demonstração, criaremos um grupo incorporado de leitores e adicionaremos o usuário ao grupo para que ele possa acessar os painéis ou as sessões incorporados

O que você aprenderá

  • Criar e executar Lambda de configuração inicial para incorporar painel: para criar usuário, grupos e permissões do QuickSight.
  • Criar e executar Lambda de configuração inicial para incorporar sessão: para criar usuário, grupos e permissões do QuickSight.
  • Incluir domínio na lista de permissões: para permitir a incorporação de páginas do QuickSight.

 Tempo para a conclusão

15 minutos

 Serviços usados

Implementação

  • Criar e executar Lambda de configuração inicial (para incorporar painel)

    Avance para a próxima seção se você estiver incorporando uma sessão
    Criaremos uma função do Lambda para executar algumas chamadas de API de configuração inicial no QuickSight. Essas chamadas de API registrarão o usuário de demonstração no QuickSight, criarão um grupo incorporado de leitores, adicionarão o usuário de demonstração a esse grupo e concederão ao grupo acesso de visualizador a um painel.

    Verifique se QSInitialSetupTempPolicy está anexada a QSLambdaBasicExecutionRole.

    1. Inicie o Lambda e clique no botão Create function (Criar função).

    139

    2. Faça as seleções a seguir.
    Escolha Author from scratch (Criar do zero)
    Function Name (Nome da função): QSEmbedSetup
    Runtime (Tempo de execução): Python 3.8
    Execution role (Função de execução): Use an existing role (Usar uma função existente). Selecione QSLambdaBasicExecutionRole no menu suspenso. Clique em Create function (Criar função)

    140
    141

    3. Copie o seguinte código python na função do Lambda e clique em Save (Salvar).

     

    def lambda_handler(event, context):
        import json,re,boto3,os,botocore
        AAI = os.environ["AwsAccountId"]
        email = os.environ["Email"]
        dashboardId = os.environ["DashboardId"]
        roleArn = os.environ["RoleArn"]
        identityRegion = os.environ["QuickSightIdentityRegion"]
        dashboardRegion = os.environ["DashboardRegion"]
        group = 'EmbeddedReaderGrp'
        groupArn='arn:aws:quicksight:'+identityRegion+':'+AAI+':group/default/'+group
    
        qs = boto3.client('quicksight',region_name=identityRegion)
        qsd = boto3.client('quicksight',region_name=dashboardRegion)
    
        try:
            res = qs.create_group(GroupName=group,AwsAccountId=AAI,Namespace='default')
        except Exception as e:
            if (str(type(e)) == "<class 'botocore.errorfactory.ResourceExistsException'>"):
                print('GroupExists')
            else:
                raise e
    
        try:
            res = qs.register_user(IdentityType='IAM',Email=email,UserRole='READER',IamArn=roleArn,SessionName='DemoUser',Namespace='default',AwsAccountId=AAI)
        except Exception as e:
            if (str(type(e)) == "<class 'botocore.errorfactory.ResourceExistsException'>"):
                print('UserExists')
            else:
                raise e
    
        res = qs.create_group_membership(MemberName='QSER/DemoUser',GroupName=group,AwsAccountId=AAI,Namespace='default')
        res = qsd.update_dashboard_permissions(AwsAccountId=AAI,DashboardId=dashboardId,GrantPermissions=[{'Principal':groupArn,'Actions':['quicksight:DescribeDashboard','quicksight:ListDashboardVersions','quicksight:QueryDashboard']}])
    142

    4. Role para baixo até a seção Environment variables (Variáveis de ambiente) e clique em Manage environment variables (Gerenciar variáveis de ambiente).

    143

    5. Adicione as variáveis de ambiente a seguir.
    AwsAccountId
    E-mail
    DashboardId: DashboardId
    salvo em seu bloco de notas (ou do URL do painel).
    RoleArn: ARN da função QSER salva em seu bloco de notas.
    QuickSightIdentityRegion: região onde as identidades do QuickSight estão configuradas.
    DashboardRegion: DashboardRegion salvo em seu bloco de notas (ou do URL do painel).
    Clique no botão Save (Salvar).

    144

    6. Role para baixo até Basic Settings (Configurações básicas) e clique no botão Edit (Editar).

    145

    7. Aumente o valor de Timeout (Tempo limite) para 2 min e clique no botão Save (Salvar)

    146

    8. No menu suspenso Select a test event (Selecionar um evento de teste), selecione Configure test events (Configurar eventos de teste).

    147

    9. Digite o nome do evento como Test e clique no botão Create (Criar).

    148

    10. Clique no botão Test (Testar).

    149

    11. Inicie o IAM, clique em Roles (Funções) no painel esquerdo, procure QSLambdaBasicExecutionRole e exclua a política temporária.

    (Pule esta e a próxima etapa por enquanto. Lembre-se de adicionar essa política de volta à função antes de executar a função do Lambda de configuração se estiver incorporando um painel agora e desejar incorporar uma sessão na sequência.)

    150

    12. Clique no botão Detach (Desanexar).

    151
  • Lambda de configuração inicial (para incorporar sessão)

    Avance para a próxima seção se você estiver incorporando um painel
    Criaremos uma função do Lambda para executar algumas chamadas de API de configuração inicial no QuickSight. Essas chamadas de API registrarão o usuário de demonstração no QuickSight como um autor. Verifique se QSInitialSetupTempPolicy está anexada a QSLambdaBasicExecutionRole.

    1. Inicie o Lambda e clique no botão Create function (Criar função).

    155

    2. Faça as seleções a seguir.
    Escolha Author from scratch (Criar do zero)
    Function Name (Nome da função): QSEmbedSetup
    Runtime (Tempo de execução): Python 3.8
    Execution role (Função de execução): Use an existing role (Usar uma função existente). Selecione QSLambdaBasicExecutionRole no menu suspenso. Clique em Create function (Criar função)

    156
    157

    3. Copie o seguinte código python na função do Lambda e clique em Save (Salvar).
     

    def lambda_handler(event, context):
        import json,re,boto3,os,botocore
        AAI = os.environ["AwsAccountId"]
        email = os.environ["Email"]
        roleArn = os.environ["RoleArn"]
        identityRegion = os.environ["QuickSightIdentityRegion"]
    
        qs = boto3.client('quicksight',region_name=identityRegion)
    
        try:
            res = qs.register_user(IdentityType='IAM',Email=email,UserRole='AUTHOR',IamArn=roleArn,SessionName='DemoUser',Namespace='default',AwsAccountId=AAI)
        except Exception as e:
            if (str(type(e)) == "<class 'botocore.errorfactory.ResourceExistsException'>"):
                print('UserExists')
                res = qs.describe_user(Namespace='default',AwsAccountId=AAI, UserName='QSER/DemoUser')
                if (res['User']['Role'] == 'READER'):
                    print('Upgrading user')
                    qs.update_user(Namespace='default',AwsAccountId=AAI, UserName='QSER/DemoUser', Email=email, Role='AUTHOR')
            else:
                raise e
    158

    4. Role para baixo até a seção Environment variables (Variáveis de ambiente) e clique em Manage environment variables (Gerenciar variáveis de ambiente).

    159

    5. Adicione as variáveis de ambiente a seguir.
    AwsAccountId
    E-mail
    RoleArn: ARN da função QSER salva em seu bloco de notas.
    QuickSightIdentityRegion: região onde as identidades do QuickSight estão configuradas.
    Clique no botão Save (Salvar).

    160

    6. Role para baixo até Basic Settings (Configurações básicas) e clique no botão Edit (Editar).

    161

    7. Aumente o valor de Timeout (Tempo limite) para 2 min e clique no botão Save (Salvar)

    162

    8. No menu suspenso Select a test event (Selecionar um evento de teste), selecione Configure test events (Configurar eventos de teste).

    163

    9. Digite o nome do evento como Test e clique no botão Create (Criar).

    164

    10. Role para cima e clique no botão Test (Testar).

    165

    11. Inicie o IAM, clique em Roles (Funções) no painel esquerdo, procure QSLambdaBasicExecutionRole e exclua a política temporária de remoção.

    (Pule esta e a próxima etapa por enquanto. Lembre-se de adicionar essa política de volta à função antes de executar a função do Lambda de configuração se estiver incorporando um painel agora e desejar incorporar uma sessão na sequência ou vice-versa.)

    166

    12. Clique no botão Detach (Desanexar).

    167
  • Incluir domínio na lista de permissões

    Na etapa final, incluiremos o domínio do CloudFront na lista de permissões do QuickSight

    1. Inicie o QuickSight e altere a região para o local onde está seu painel.

    171

    2. Clique no ícone de pessoa no canto superior direito e em Manage QuickSight (Gerenciar QuickSight) no menu suspenso.

    172

    3. Clique em Domains and Embedding (Domínios e incorporação) no painel esquerdo.

    173

    4. Insira https://Nome de domínio do CloudFront no domínio e clique no botão Add (Adicionar).

    174

Conclusão

Você concluiu o módulo seis com êxito! A seguir, vamos iniciar a aplicação no módulo sete.

Este módulo foi útil?

Iniciar a aplicação