Criar pontos de acesso do Object Lambda - Amazon Simple Storage Service

Criar pontos de acesso do Object Lambda

Um ponto de acesso do Object Lambda está associado a exatamente um ponto de acesso padrão e, portanto, a um bucket do Amazon S3. Para criar um ponto de acesso do Object Lambda, você precisa dos seguintes recursos:

  • Um bucket do Amazon S3. Para obter mais informações sobre a criação de buckets, consulte Criação de um bucket.

  • Um ponto de acesso do S3 padrão. Quando você trabalha com pontos de acesso do Object Lambda, esse ponto de acesso padrão é conhecido como ponto de acesso de suporte. Para obter informações sobre a criação de pontos de acesso padrão, consulte Criar pontos de acesso.

  • Uma função do AWS Lambda. Você pode criar sua própria função do Lambda ou usar uma função pré-criada. Para obter mais informações sobre como criar funções do Lambda, consulte Escrever funções do Lambda para pontos de acesso do S3 Object Lambda. Para obter mais informações sobre funções pré-construídas, consulte Usar funções do Lambda criadas pela AWS.

  • (Opcional) Uma política do AWS Identity and Access Management (IAM). Os pontos de acesso do Amazon S3 são compatíveis com políticas de recursos do IAM que você pode usar para controlar o uso do ponto de acesso por recurso, usuário ou outras condições. Para obter mais informações sobre como criar essas políticas, consulte Configurar políticas do IAM para pontos de acesso do Object Lambda.

As seções a seguir descrevem como criar um ponto de acesso do Object Lambda usando:

  • A AWS Management Console

  • A AWS Command Line Interface (AWS CLI)

  • Um modelo do AWS CloudFormation

  • A AWS Cloud Development Kit (AWS CDK)

Para obter informações sobre como criar um ponto de acesso do Object Lambda usando a API REST, consulte CreateAccessPointForObjectLambda na Referência de API do Amazon Simple Storage Service.

Criar um ponto de acesso do Object Lambda

Use um dos procedimentos a seguir para criar o ponto de acesso do Object Lambda.

Para criar um ponto de acesso do Object Lambda usando o console
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na barra de navegação, escolha o nome da Região da AWS exibida no momento. Em seguida, escolha a região para a qual você deseja mudar.

  3. No painel de navegação à esquerda, escolha Object Lambda access points (Pontos de acesso do Object Lambda).

  4. Na página Object Lambda Access Points (Pontos de acesso do Object Lambda), escolha Create Object Lambda Access Point (Criar ponto de acesso do Object Lambda).

  5. Em Object Lambda Access Point name (Nome do ponto de acesso do Object Lambda), insira o nome que deseja usar para o ponto de acesso.

    Tal como acontece com pontos de acesso padrão, existem regras para nomeação de pontos de acesso do Object Lambda. Para obter mais informações, consulte Regras para nomear pontos de acesso do Amazon S3.

  6. Para Supporting Access Point (Ponto de acesso de suporte), insira ou navegue até o ponto de acesso padrão que você deseja usar. O ponto de acesso deve estar na mesma Região da AWS que os objetos que você deseja transformar. Para obter informações sobre a criação de pontos de acesso padrão, consulte Criar pontos de acesso.

  7. Em Configuração de transformação, você pode adicionar uma função que transforma os dados para o ponto de acesso do Object Lambda. Execute um destes procedimentos:

    • Se você já tem uma função do AWS Lambda em sua conta, pode escolhê-la em Invoke Lambda function (Invocar função do Lambda). Aqui você pode inserir o nome do recurso da Amazon (ARN) de uma função do Lambda em sua Conta da AWS ou escolher uma função do Lambda no menu suspenso.

    • Se você quiser usar uma função integrada à AWS, escolha o nome da função em Função criada pela AWS e selecione Criar função do Lambda. Isso levará você ao console do Lambda, onde poderá implantar uma função integrada à sua Conta da AWS. Para obter mais informações sobre funções integradas, consulte Usar funções do Lambda criadas pela AWS.

    Em S3 APIs (APIs do S3), escolha uma ou mais operações de API para invocar. Para cada API selecionada, você deve especificar uma função do Lambda para invocar.

  8. (Opcional) Em Payload (Carga útil), adicione o texto JSON que você quer fornecer para a função do Lambda como entrada. Você pode configurar cargas com parâmetros diferentes para pontos de acesso do Object Lambda diferentes que invocam a mesma função do Lambda, estendendo, assim, a flexibilidade da função do Lambda.

    Importante

    Ao usar os pontos de acesso do Object Lambda, verifique se a carga útil não contém informações sigilosas.

  9. (Opcional) Em Range and part number (Intervalo e número de peça), você deve habilitar essa opção a fim processar solicitações GET e HEAD com cabeçalhos de intervalo e número de peça. Habilitar essa opção confirma que sua função do Lambda é capaz de reconhecer e processar essas solicitações. Para obter mais informações sobre cabeçalhos de intervalo e números de peça, consulte Trabalhar com cabeçalhos Range e partNumber.

  10. (Opcional) Em Métricas de solicitação, escolha Ativar ou Desativar para adicionar o monitoramento do Amazon S3 ao ponto de acesso do Object Lambda. As métricas de solicitação são cobradas na taxa padrão do Amazon CloudWatch.

  11. (Opcional) Em Object Lambda Access Point policy (Política de ponto de acesso do Object Lambda), defina uma política de recursos. As políticas de recursos concedem permissões para o ponto de acesso do Object Lambda especificado e podem controlar o uso do ponto de acesso por recurso, usuário ou outras condições. Para obter mais informações sobre as políticas de recursos de ponto de acesso do Object Lambda, consulte Configurar políticas do IAM para pontos de acesso do Object Lambda.

  12. Em Block Public Access settings for this Object Lambda Access Point (Configurações de bloqueio de acesso público para este ponto de acesso do Object Lambda), selecione as configurações de bloqueio de acesso público que você deseja aplicar. Todas as configurações de bloqueio de acesso público são habilitadas por padrão para novos pontos de acesso do Object Lambda, e recomendamos que você deixe as configurações padrão habilitadas. Atualmente, o Amazon S3 não oferece suporte à alteração das configurações de bloqueio de acesso público a pontos de acesso do Object Lambda após a criação de pontos de acesso do Object Lambda.

    Para obter mais informações sobre como usar o bloqueio de acesso público do Amazon S3, consulte Gerenciar o acesso público a pontos de acesso.

  13. Escolha Create Object Lambda Access Point (Criar ponto de acesso do Object Lambda).

Para criar um ponto de acesso do Object Lambda usando um modelo do AWS CloudFormation
nota

Para usar os comandos a seguir, substitua user input placeholders por suas próprias informações.

  1. Baixe o pacote de implantação da função s3objectlambda_deployment_package.zip do AWS Lambda em S3 Object Lambda default configuration (Configuração padrão do S3 Object Lambda).

  2. Execute o comando put-object a seguir para fazer upload do pacote em um bucket do Amazon S3.

    aws s3api put-object --bucket Amazon S3 bucket name --key s3objectlambda_deployment_package.zip --body release/s3objectlambda_deployment_package.zip
  3. Baixe o modelo s3objectlambda_defaultconfig.yaml do AWS CloudFormation em S3 Object Lambda default configuration (Configuração padrão do S3 Object Lambda).

  4. Execute o comando deploy a seguir para implantar o modelo em sua Conta da AWS.

    aws cloudformation deploy --template-file s3objectlambda_defaultconfig.yaml \ --stack-name AWS CloudFormation stack name \ --parameter-overrides ObjectLambdaAccessPointName=Object Lambda Access Point name \ SupportingAccessPointName=Amazon S3 access point S3BucketName=Amazon S3 bucket \ LambdaFunctionS3BucketName=Amazon S3 bucket containing your Lambda package \ LambdaFunctionS3Key=Lambda object key LambdaFunctionS3ObjectVersion=Lambda object version \ LambdaFunctionRuntime=Lambda function runtime --capabilities capability_IAM

Você pode configurar esse modelo do AWS CloudFormation para invocar o Lambda para as operações de API GET, HEAD e LIST. Para obter mais informações sobre como modificar a configuração padrão do modelo, consulte Automatizar a configuração do S3 Object Lambda com um modelo do CloudFormation.

Para criar um ponto de acesso do Object Lambda usando a AWS CLI
nota

Para usar os comandos a seguir, substitua user input placeholders por suas próprias informações.

O exemplo a seguir cria um ponto de acesso do Object Lambda chamado my-object-lambda-ap para o bucket amzn-s3-demo-bucket1 na conta 111122223333. Esse exemplo pressupõe que um ponto de acesso padrão denominado example-ap já tenha sido criado. Para obter informações sobre como criar um ponto de acesso padrão, consulte Criar pontos de acesso.

Este exemplo usa a função pré-criada decompress da AWS. Para obter mais informações sobre funções pré-construídas, consulte Usar funções do Lambda criadas pela AWS.

  1. Crie um bucket. Neste exemplo, usaremos amzn-s3-demo-bucket1. Para obter mais informações sobre a criação de buckets, consulte Criação de um bucket.

  2. Crie um ponto de acesso padrão e anexe-o ao seu bucket. Neste exemplo, usaremos example-ap. Para obter informações sobre a criação de pontos de acesso padrão, consulte Criar pontos de acesso.

  3. Execute um destes procedimentos:

  4. Crie um arquivo de configuração JSON chamado my-olap-configuration.json. Nessa configuração, forneça o ponto de acesso de suporte e o nome do recurso da Amazon (ARN) para a função do Lambda que você criou nas etapas anteriores ou o ARN da função pré-criada que você está usando.

    { "SupportingAccessPoint" : "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap", "TransformationConfigurations": [{ "Actions" : ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation" : { "AwsLambda": { "FunctionPayload" : "{\"compressionType\":\"gzip\"}", "FunctionArn" : "arn:aws:lambda:us-east-1:111122223333:function/compress" } } }] }
  5. Execute o comando create-access-point-for-object-lambda para criar o ponto de acesso do Object Lambda.

    aws s3control create-access-point-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --configuration file://my-olap-configuration.json
  6. (Opcional) Crie um arquivo de política JSON chamado my-olap-policy.json.

    Adicionar uma política de recursos de ponto de acesso do Object Lambda pode controlar o uso do ponto de acesso por recurso, usuário ou outras condições. Essa política de recursos concede a permissão GetObject para a conta 444455556666 ao ponto de acesso do Object Lambda especificado.

    { "Version": "2008-10-17", "Statement": [ { "Sid": "Grant account 444455556666 GetObject access", "Effect": "Allow", "Action": "s3-object-lambda:GetObject", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Resource": "your-object-lambda-access-point-arn" } ] }
  7. (Opcional) Execute o comando put-access-point-policy-for-object-lambda para definir sua política de recursos.

    aws s3control put-access-point-policy-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --policy file://my-olap-policy.json
  8. (Opcional) Especifique uma carga útil.

    Uma carga útil é um JSON opcional que você pode fornecer à sua função do AWS Lambda como entrada. Você pode configurar cargas com parâmetros diferentes para pontos de acesso do Object Lambda diferentes que invocam a mesma função do Lambda, estendendo, assim, a flexibilidade da função do Lambda.

    A configuração do ponto de acesso do Object Lambda a seguir mostra uma carga útil com dois parâmetros.

    { "SupportingAccessPoint": "AccessPointArn", "CloudWatchMetricsEnabled": false, "TransformationConfigurations": [{ "Actions": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation": { "AwsLambda": { "FunctionArn": "FunctionArn", "FunctionPayload": "{\"res-x\": \"100\",\"res-y\": \"100\"}" } } }] }

    A configuração de ponto de acesso do Object Lambda a seguir mostra uma carga útil com um único parâmetro e com GetObject-Range, GetObject-PartNumber, HeadObject-Range e HeadObject-PartNumber ativados.

    { "SupportingAccessPoint":"AccessPointArn", "CloudWatchMetricsEnabled": false, "AllowedFeatures": ["GetObject-Range", "GetObject-PartNumber", "HeadObject-Range", "HeadObject-PartNumber"], "TransformationConfigurations": [{ "Action": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation": { "AwsLambda": { "FunctionArn":"FunctionArn", "FunctionPayload": "{\"compression-amount\": \"5\"}" } } }] }
    Importante

    Ao usar os pontos de acesso do Object Lambda, verifique se a carga útil não contém informações sigilosas.

É possível criar um ponto de acesso do Object Lambda usando a configuração padrão fornecida pelo Amazon S3. Você pode baixar um modelo do AWS CloudFormation e o código-fonte da função do Lambda do repositório do GitHub e implantar esses recursos para configurar um ponto de acesso funcional do Object Lambda.

Para obter informações sobre como modificar a configuração padrão do template do AWS CloudFormation, consulte Automatizar a configuração do S3 Object Lambda com um modelo do CloudFormation.

Para obter informações sobre como configurar pontos de acesso do Object Lambda usando o AWS CloudFormation sem o modelo, consulte AWS::S3ObjectLambda::AccessPoint no Guia do usuário do AWS CloudFormation.

Para carregar o pacote de implantação da função Lambda
  1. Baixe o pacote de implantação da função s3objectlambda_deployment_package.zip do AWS Lambda em S3 Object Lambda default configuration (Configuração padrão do S3 Object Lambda).

  2. Faça upload do pacote em um bucket do Amazon S3.

Para criar um ponto de acesso do Object Lambda usando o console do AWS CloudFormation
  1. Baixe o modelo s3objectlambda_defaultconfig.yaml do AWS CloudFormation em S3 Object Lambda default configuration (Configuração padrão do S3 Object Lambda).

  2. Faça login no Console de Gerenciamento da AWS e abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  3. Execute um destes procedimentos:

    • Se você nunca usou o AWS CloudFormation, na página inicial do AWS CloudFormation, escolha Create stack (Criar pilha).

    • Se você já usou o AWS CloudFormation, no painel de navegação à esquerda, selecione Stacks (Pilhas). Selecione Create stack (Criar pilha), depois escolha With new resources (standard) (Com novos recursos (padrão)).

  4. Em Prerequisite - Prepare template (Pré-requisito - Preparar template), escolha Template is ready (O template está pronto).

  5. Em Specify template (Especificar modelo), escolha Upload a template file (Fazer upload de um arquivo de modelo) e faça upload de s3objectlambda_defaultconfig.yaml.

  6. Escolha Próximo.

  7. Na página Specify stack details (Especificar detalhes da pilha), insira um nome para a pilha.

  8. Na seção Parameters (Parâmetros), especifique os parâmetros que são definidos no modelo da pilha:

    1. Em CreateNewSupportingAccessPoint, siga um destes procedimentos:

      • Se você já tem um ponto de acesso de suporte para o bucket do S3 em que fez upload do modelo, escolha false (falso).

      • Se quiser criar um ponto de acesso para esse bucket, selecione true (verdadeiro).

    2. Para EnableCloudWatchMonitoring, escolha true (verdadeiro) ou false (falso), dependendo se deseja habilitar as métricas e os alarmes de solicitação do Amazon CloudWatch.

    3. (Opcional) Em LambdaFunctionPayload, adicione o texto JSON que você quer fornecer para a função do Lambda como entrada. Você pode configurar cargas com parâmetros diferentes para pontos de acesso do Object Lambda diferentes que invocam a mesma função do Lambda, estendendo, assim, a flexibilidade da função do Lambda.

      Importante

      Ao usar os pontos de acesso do Object Lambda, verifique se a carga útil não contém informações sigilosas.

    4. Em LambdaFunctionRuntime, insira seu tempo de execução preferido para a função do Lambda. As opções disponíveis são nodejs14.x, python3.9 e java11.

    5. Em LambdaFunctionS3BucketName, insira o nome do bucket do Amazon S3 para o qual você fez upload do pacote de implantação.

    6. Em LambdaFunctionS3Key, insira o nome da chave de objeto do Amazon S3 para o qual você fez upload do pacote de implantação.

    7. Em LambdaFunctionS3Key, insira a versão do objeto do Amazon S3 no qual você fez upload do pacote de implantação.

    8. Em ObjectLambdaAccessPointName, insira um nome para o ponto de acesso do Object Lambda.

    9. Em S3BucketName, insira o nome do bucket do Amazon S3 que será associado ao ponto de acesso do Object Lambda.

    10. Em SupportingAccessPointName, insira o nome de seu ponto de acesso de suporte.

      nota

      Trata-se de um ponto de acesso associado ao bucket do Amazon S3 que você escolheu na etapa anterior. Caso não tenha nenhum ponto de acesso associado ao bucket do Amazon S3, você poderá configurar o modelo para criar um selecionando true (verdadeiro) em CreateNewSupportingAccessPoint.

  9. Escolha Próximo.

  10. Na página Configurar opções de pilha, selecione Avançar.

    Para obter mais informações sobre as configurações opcionais nesta página, consulte Configurar opções de pilha do AWS CloudFormation no Guia do usuário do AWS CloudFormation.

  11. Na página Review (Revisão), escolha Create stack (Criar pilha).

Para obter mais informações sobre como configurar pontos de acesso do Object Lambda usando o AWS CDK, consulte Biblioteca de estruturas do AWS::S3ObjectLambda na Referência de API do AWS Cloud Development Kit (AWS CDK).