Criar um crawler do AWS Glue - Amazon AppStream 2.0

Criar um crawler do AWS Glue

O AWS Glue é um serviço de extração, transformação e carregamento (ETL) totalmente gerenciado que permite que você crie um banco de dados com base em seus dados do Amazon S3 e consulte esse banco de dados usando o Athena. Esse banco de dados também é chamado de Catálogo de dados do AWS Glue. Um crawler do AWS Glue consegue detectar automaticamente o esquema dos seus dados do Amazon S3 e criar o banco de dados e as tabelas correspondentes. O AppStream 2.0 fornece um modelo do AWS CloudFormation que você pode usar para criar os recursos necessários do AWS Glue.

Importante

A conclusão das etapas no procedimento a seguir cria um crawler do AWS Glue. Porém, estas etapas não iniciam o crawler. Para iniciar o crawler, você deve executar as etapas do próximo procedimento. Para obter mais informações sobre crawlers do AWS Glue, consulte Definir crawlers.

Para criar um rastreador do AWS Glue
  1. Abra o console do AppStream 2.0 em https://console.aws.amazon.com/appstream2.

  2. Escolha a região da AWS na qual você assinou os relatórios de uso.

  3. No painel de navegação, escolha Usage Reports (Relatórios de uso) e verifique se o registro em log está habilitado.

  4. Na guia Report Details (Detalhes do relatório), no parágrafo próximo a Analytics (Análise), escolha o link CloudFormation template (Modelo do CloudFormation).

    A escolha do link abre o console do AWS CloudFormation, onde você pode revisar os parâmetros da pilha do AWS CloudFormation especificada pelo modelo antes da execução. Quando executado, o modelo cria um crawler do AWS Glue e várias consultas de amostra do Athena.

  5. Na página Specify Details (Especificar detalhes), próximo a ScheduleExpression, mantenha o valor padrão ou especifique um valor de expressão cron diferente para a frequência com que você deseja executar o crawler. Não altere nenhum outro valor padrão. Quando concluir, selecione Próximo.

    Por padrão, o crawler está programado para ser executado diariamente, mas você pode configurar o crawler para ser executado semanalmente, mensalmente ou com outra frequência. Para obter informações sobre a sintaxe cron, consulte Expressões cron.

  6. Na página Options (Opções), mantenha os valores padrão e escolha Next (Próximo).

  7. Na página Revisar, marque a caixa de seleção ao lado de “Eu confirmo que o AWS CloudFormation pode criar recursos do IAM com nomes personalizados”, depois escolha Criar.

    Você deve ter permissões suficientes do AWS Glue e do AWS Identity and Access Management (IAM) para criar e executar a pilha do AWS CloudFormation. Se você não tiver as permissões necessárias, peça ao administrador da sua conta da Amazon Web Services para executar essas etapas na sua conta ou conceder as permissões a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:CreateNamedQuery", "athena:BatchGetNamedQuery", "athena:GetNamedQuery", "athena:StartQueryExecution", "athena:GetQueryResults", "athena:GetQueryExecution", "athena:ListNamedQueries", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:DescribeStackEvents", "cloudformation:CreateStack", "cloudformation:GetTemplate", "cloudformation:ListChangeSets", "cloudformation:ListStackResources", "iam:GetRole", "iam:CreateRole", "iam:GetRolePolicy", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*", "arn:aws:cloudformation:*:*:stack/AppStreamUsageReports/*", "arn:aws:athena:*:*:workgroup/primary", "arn:aws:s3:::aws-athena-query-results-*" ] }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:PutRolePolicy", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::appstream-logs-*", "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*" ], "Condition": { "StringEquals": { "iam:PassedToService": "glue.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "cloudformation:GetTemplateSummary", "glue:GetResourcePolicy", "glue:GetCrawlers", "glue:BatchGetCrawlers", "glue:GetClassifiers", "glue:CreateClassifier", "glue:ListCrawlers", "glue:GetTags", "glue:GetCrawlerMetrics", "glue:GetClassifier", "tag:GetResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": "athena:RunQuery", "Resource": "arn:aws:athena:*:*:workgroup/primary" }, { "Effect": "Allow", "Action": [ "glue:GetTables", "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "arn:aws:glue:*:*:table/appstream-usage/*", "arn:aws:glue:*:*:database/appstream-usage", "arn:aws:glue:*:*:catalog" ] }, { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDatabases" ], "Resource": [ "arn:aws:glue:*:*:database/appstream-usage", "arn:aws:glue:*:*:catalog" ] }, { "Effect": "Allow", "Action": [ "glue:GetCrawler", "glue:StartCrawler", "glue:CreateCrawler" ], "Resource": "arn:aws:glue:*:*:crawler/appstream-usage*" }, { "Effect": "Allow", "Action": "glue:GetCatalogImportStatus", "Resource": "arn:aws:glue:*:*:catalog" } ] }