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).
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)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']}])
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).
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).6. Role para baixo até Basic Settings (Configurações básicas) e clique no botão Edit (Editar).
7. Aumente o valor de Timeout (Tempo limite) para 2 min e clique no botão Save (Salvar)
8. No menu suspenso Select a test event (Selecionar um evento de teste), selecione Configure test events (Configurar eventos de teste).
9. Digite o nome do evento como Test e clique no botão Create (Criar).
10. Clique no botão Test (Testar).
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.)12. Clique no botão Detach (Desanexar).
-
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).
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)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
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).
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).6. Role para baixo até Basic Settings (Configurações básicas) e clique no botão Edit (Editar).
7. Aumente o valor de Timeout (Tempo limite) para 2 min e clique no botão Save (Salvar)
8. No menu suspenso Select a test event (Selecionar um evento de teste), selecione Configure test events (Configurar eventos de teste).
9. Digite o nome do evento como Test e clique no botão Create (Criar).
10. Role para cima e clique no botão Test (Testar).
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.)12. Clique no botão Detach (Desanexar).
-
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.
2. Clique no ícone de pessoa no canto superior direito e em Manage QuickSight (Gerenciar QuickSight) no menu suspenso.
3. Clique em Domains and Embedding (Domínios e incorporação) no painel esquerdo.
4. Insira https://Nome de domínio do CloudFront no domínio e clique no botão Add (Adicionar).
Conclusão
Você concluiu o módulo seis com êxito! A seguir, vamos iniciar a aplicação no módulo sete.