Quero usar imagens de um bucket privado do Amazon Simple Storage Service (Amazon S3) em um painel do Amazon Quick Sight.
Resolução
Para usar imagens de um bucket privado do Amazon S3 em painéis ou relatórios do Quick Sight, use a API do AWS Lambda ou o console do Amazon CloudFront.
API do Lambda
Para usar a API do Lambda, crie uma função do Lambda e, em seguida, crie um gatilho do Amazon API Gateway.
Crie uma função do Lambda
Conclua as etapas a seguir:
- Abra o console do Amazon S3.
- No painel de navegação, clique em Buckets e selecione seu bucket.
- Clique em Fazer upload.
- Faça upload da imagem para o bucket no formato .jpg.
- Execute o comando a seguir para criar uma função do Lambda:
import boto3
import base64
def lambda_handler(event, context):
s3 = boto3.client("s3")
downloaded_s3_object = s3.get_object(Bucket="S3 BUCKET NAME", Key="Image.jpg")
return base64.b64encode(downloaded_s3_object["Body"].read())
Observação: substitua S3 BUCKET NAME e downloaded_s3_object por suas informações. O perfil do AWS Identity and Access Management (AWS IAM) do Lambda deve ter permissão para obter objetos do bucket do S3. Na função do Lambda, defina Runtime como Python 3.9.
- Clique em Implantar.
Crie um gatilho do API Gateway
Conclua as etapas a seguir:
- Abra o console do API Gateway.
- No painel de navegação, selecione APIs e, em seguida, clique em Criar API.
- Em API REST, selecione Compilar.
- Na página Criar API REST, em Detalhes da API, clique em Nova API e insira as seguintes informações:
Insira um nome para sua API e selecione Criar API.
(Opcional) Insira uma descrição para a sua API.
Em Tipo de endpoint da API, selecione Regional. Em seguida, clique em Criar API.
- Na página Recursos, em Métodos, selecione Criar método.
- Na página Criar método, insira as seguintes informações:
Em Tipo de método, clique em GET.
Em Tipo de integração, clique em Função do Lambda.
Em Função do Lambda, selecione a região da AWS e sua função do Lambda.
- Clique em Criar método.
- Na página Recursos, em Configurações de solicitação de método, clique em Editar.
- Na página Editar solicitação de método, em Cabeçalhos de solicitação HTTP, clique em Adicionar cabeçalho.
- Em Nome, insira Content-Type e selecione Salvar.
- Na página Recursos, em Resposta de integração, clique em Editar.
- Em Detalhes da resposta, em Tratamento de conteúdo, selecione Converter em binário.
- Clique em Salvar.
- Implante sua API.
Observação: para obter mais informações, consulte Configurar um estágio para uma API REST no API Gateway.
- Na página Estágios, em Detalhes do estágio, anote o URL de invocação. Por exemplo, https://1a2bc3d456.execute-api.region.amazonaws.com/test.
- Abra o console do Quick Suite.
- No painel de navegação, clique em Análises e selecione as análises às quais você deseja adicionar a imagem.
- No menu Visuais, selecione Conteúdo visual personalizado.
- Clique em Personalizar elemento visual.
- No painel Propriedades, em Personalizar conteúdo, insira o URL de invocação.
- Ative a opção Mostrar como imagem e clique em Aplicar.
O API Gateway retorna uma string base64 da imagem. O editor de informações do Quick Sight usa o URL da API para exibir a imagem.
Console do CloudFront
Conclua as etapas a seguir:
- Abra o console do CloudFront.
- No painel de navegação, selecione Distribuições e clique em Criar distribuição.
- Na página Criar distribuição, insira as seguintes informações:
Em Domínio de origem, insira o nome do domínio da sua origem.
Em Acesso de origem, selecione Configurações de controle de acesso de origem (recomendado).
Em Controle de acesso de origem, clique em Criar novo OAC e, em seguida, selecione Criar.
- Em Web Application Firewall (WAF), selecione Não ativar proteções de segurança.
- Clique em Criar distribuição.
- Na página Detalhes da distribuição, anote o nome do domínio da distribuição. Por exemplo, d2icdkfpjckhwg.cloufront.net.
- Na mensagem "A política de bucket do S3 precisa ser atualizada", clique em Copiar política.
- Abra o console do Amazon S3.
- Em Buckets de uso geral, selecione o bucket que hospeda o conteúdo no domínio de origem.
- Na página Detalhes do bucket, em Permissões, clique em Editar.
- Insira a política e clique em Salvar alterações.
- Na página Detalhes do bucket, em Objetos, selecione o objeto.
- Na página Detalhes do objeto, anote o URI do S3. Por exemplo, s3://your-bucket-name/your_image.png.
- Em uma nova guia do navegador, insira o URI do S3. Por exemplo, d2icdkfpjckhwg.cloufront.net/your_image.png.
- No painel do Quick Sight, em Propriedades, clique na seção Visual e insira o URI personalizado no campo URL.
- Clique em Aplicar.