BUG: no access to S3 Express One Zone (aka directory buckets) from AWS Lambda

0

Accessing buckets in S3 Express One Zone (aka directory buckets) from AWS Lamba function is not working. My Lambda function is based on the example from the documentation:

import boto3
import json

def get_object(s3_client, bucket_name, key_name):
    try:
        response = s3_client.get_object(Bucket=bucket_name, Key=key_name)
        body = response['Body'].read()
        print(f"Got object '{key_name}' from bucket '{bucket_name}'.")
        return body
    except Exception as e:
        print(str(e))
        raise 

def lambda_handler(event, context):
    s3_client = boto3.client('s3')
    resp = get_object(s3_client, 'mybucket--use1-az4--x-s3', 'myobject')
    return {'statusCode': 200}

I get an exception at calling get_object:

An error occurred (NoSuchBucket) when calling the GetObject operation: The specified bucket does not exist.

If I use the name of a regular (non-directory) bucket, it works.

The issue has been corroborated at SO.

preguntada hace 5 meses389 visualizaciones
1 Respuesta
1
Respuesta aceptada

What version of boto3 are you using? You have have to create a ZIP file which includes the latest version of the library in order to access S3 Express One Zone.

Ref: https://docs.aws.amazon.com/lambda/latest/dg/python-package.html

profile pictureAWS
EXPERTO
respondido hace 5 meses
  • I created a new Lambda function with the latest Python environment and used boto3 bundled with it... I searched to find out which version of boto3 is required, but did not find anything...

  • The current version is 1.27.1. I will try to make a layer with the latest version.

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas