View a markdown version of this page

Como configurar o acesso à Amazon S3 Files - AWS Lambda

Como configurar o acesso à Amazon S3 Files

O Amazon S3 Files fornece um sistema de arquivos compartilhado que conecta qualquer recurso computacional AWS diretamente com seus dados no Amazon S3. O Amazon S3 Files fornece acesso aos seus objetos do Amazon S3 como arquivos usando operações padrão do sistema de arquivos, como leitura e gravação no caminho de montagem local. Saiba mais sobre o Amazon S3 Files.

Pré-requisitos e configuração

Antes de configurar o Amazon S3 Files com sua função do Lambda, você deve atender aos seguintes pré-requisitos:

  • Um sistema de arquivos Amazon S3 e alvos de montagem no estado disponível na mesma conta e Região da AWS como sua função do Lambda.

  • Uma função do Lambda na mesma VPC que o destino de montagem. Você deve ter um destino de montagem em cada sub-rede em que sua função está implantada.

  • Grupos de segurança que permitam o tráfego NFS (porta 2049) entre sua função do Lambda e os destinos de montagem. Saiba mais sobre como configurar grupos de segurança.

Para obter mais informações, consulte os tópicos a seguir no Guia do usuário da Amazon S3.

Função de execução e permissões de usuário

O perfil de execução da função precisa ter as seguintes permissões para acessar um sistema de arquivos do Amazon S3 Files:

Permissões da função de execução
  • s3Files:ClientMount — Necessário para montar o sistema de arquivos.

  • S3Files:ClientWrite — Necessário para acesso de leitura e gravação. Não é necessário para conexões somente para leitura.

Essas permissões estão incluídas na política gerenciada AmazonS3FilesClientReadWriteAccess. Além disso, a função de execução deve ter as permissões necessárias para conectar à VPC do sistema de arquivos.

nota

O Amazon S3 Files otimiza o throughput transmitindo as solicitações de leitura qualificadas diretamente do bucket do Amazon S3. As leituras diretas são habilitadas por padrão para as funções configuradas com 512 MB ou mais de memória. Para obter mais informações, consulte Configuração de leituras diretas.

Sua função precisa das seguintes permissões para ler diretamente do Amazon S3:

  • s3:GetObject

  • s3:GetObjectVersion

Para obter mais informações sobre as permissões necessárias, consulte Permissões do IAM para o Amazon S3 Files no Guia do usuário do Amazon S3.

Quando você configura um sistema de arquivos no console, o Lambda usa as suas permissões para verificar os destinos de montagem e os pontos de acesso. Para configurar uma função para se conectar a um sistema de arquivos, seu usuário precisa das permissões a seguir:

Permissões de usuário
  • s3files:ListFileSystems

  • s3files:ListAccessPoints

  • s3files:GetFileSystem

  • s3files:GetAccessPoint

  • s3files:CreateAccessPoint — Necessário ao conectar o sistema de arquivos à função a partir do console.

O seguinte exemplo de política concede permissões à função de execução de sua função para montar um sistema de arquivos Amazon S3 com acesso de leitura e gravação e leitura diretamente do Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3FilesLambdaAccess", "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite" ], "Resource": "*" }, { "Sid": "S3DirectRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket-name/*" }, { "Sid": "S3FilesConsoleSetup", "Effect": "Allow", "Action": [ "s3files:ListFileSystems", "s3files:ListAccessPoints", "s3files:GetFileSystem", "s3files:GetAccessPoint", "s3files:CreateAccessPoint" ], "Resource": "*" } ] }

Como conectar-se a um sistema de arquivos (console)

Uma função se conecta a um sistema de arquivos pela rede local em uma VPC. As sub-redes às quais a função se conecta podem ser as mesmas sub-redes que contêm pontos de montagem para o sistema e arquivos, ou sub-redes na mesma zona de disponibilidade que pode rotear o tráfego de NFS (porta 2049) para o sistema de arquivos.

nota

Se a função ainda não estiver conectada a uma VPC, consulte Conceder acesso a funções do Lambda para recursos em uma Amazon VPC.

Para configurar o acesso aos arquivos S3
  1. Abra a página Funções do console do Lambda.

  2. Escolha uma função.

  3. Escolha Configuração e Sistemas de arquivos.

  4. SelecioneAdicionar sistema de arquivos (ou Editar para modificar uma configuração existente).

  5. Selecione S3 Files.

  6. Configure as seguintes propriedades:

    • Sistema de arquivos S3 — Selecione um sistema de arquivos na lista suspensa.

    • Ponto de acesso (opcional) — Selecione um ponto de acesso. Se o sistema de arquivos não tiver pontos de acesso, o Lambda cria automaticamente um quando você salva (UID/GID 1000:1000, /lambda diretório raiz, permissões 755). Se existirem pontos de acesso, você deve selecionar um.

    • Caminho de montagem local: o local onde o sistema de arquivos está montado na função do Lambda, começando com /mnt/.

    • Configuração avançada

      • Leituras diretas do S3: controla se o Lambda pode transmitir as leituras qualificadas diretamente do bucket do Amazon S3 para proporcionar maior throughput. Para obter mais informações, consulte Configuração de leituras diretas.

  7. Escolha Salvar.

Seu sistema de arquivos será anexado na próxima vez que você invocar sua função do Lambda.

Configuração de leituras diretas

As leituras diretas otimizam o throughput ao transmitir dados diretamente do bucket do Amazon S3. O Lambda usa leituras diretas no caso de leituras volumosas e quando o armazenamento de alto desempenho do sistema de arquivos não contém os dados do arquivo. Para obter mais informações, consulte Como o S3 Files oferece desempenho. Essa configuração opcional faz parte das FileSystemConfigs da sua função e se aplica somente aos sistemas de arquivos do Amazon S3. O parâmetro DirectS3Read aceita os seguintes valores:

  • AUTO (padrão): habilita leituras diretas para funções configuradas com 512 MB ou mais de memória.

  • ENABLED: habilita leituras diretas para sua função, incluindo funções com menos de 512 MB de memória.

  • DISABLED: direciona todas as leituras pelo armazenamento de alto desempenho do sistema de arquivos.

nota

Se uma leitura direta falhar, o Lambda volta automaticamente à leitura por meio do sistema de arquivos.

Para usar leituras diretas, o perfil de execução da função precisa ter as permissões necessárias. Para obter mais informações, consulte Políticas de pré-requisito do Amazon S3 Files.