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


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):
        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:

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.

feita há 6 meses398 visualizações
1 Resposta
Resposta aceita

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
respondido há 6 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.

Você não está conectado. Fazer login para postar uma resposta.

Uma boa resposta responde claramente à pergunta, dá feedback construtivo e incentiva o crescimento profissional de quem perguntou.

Diretrizes para responder a perguntas