

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation d'Amazon S3 Express One Zone avec AWS Glue
<a name="aws-glue-programming-etl-s3-express"></a>

Avec AWS Glue la version 5.1 et les versions ultérieures, vous pouvez lire et écrire des données dans des compartiments de répertoire [Amazon S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-high-performance.html#s3-express-one-zone) à partir de vos tâches ETL. S3 Express One Zone est une classe de stockage Amazon S3 à zone unique à hautes performances qui fournit un accès aux données cohérent à un chiffre en millisecondes pour les applications sensibles à la latence.

## Conditions préalables
<a name="aws-glue-programming-etl-s3-express-prereqs"></a>

Avant de pouvoir utiliser S3 Express One Zone avecAWS Glue, vous devez disposer des éléments suivants :
+ Une AWS Glue tâche exécutant la version 5.1 ou supérieure.
+ Un bucket d'annuaire S3 créé dans la même région que votre AWS Glue tâche. Les compartiments d'annuaire ne prennent pas en charge l'accès entre régions. Pour plus d'informations, consultez la section [Création de compartiments d'annuaire](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-create.html) dans le *guide de l'utilisateur Amazon S3*.
+ L'`s3express:CreateSession`autorisation associée à votre rôle IAM. Lorsque S3 Express One Zone exécute une action sur un bucket d'annuaire, il appelle `CreateSession` en votre nom.

## Autorisations IAM
<a name="aws-glue-programming-etl-s3-express-iam"></a>

Ajoutez l'autorisation suivante au rôle IAM de votre AWS Glue tâche pour autoriser l'accès aux compartiments de répertoire S3 Express One Zone :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3express:CreateSession",
            "Resource": "arn:aws:s3express:*:*:bucket/{{EXAMPLE-BUCKET}}--{{az-id}}--x-s3"
        }
    ]
}
```

{{EXAMPLE-BUCKET}}Remplacez-le par le nom du compartiment de votre répertoire et {{az-id}} par l'ID de zone de disponibilité (par exemple,`use1-az4`).

## Lecture et écriture de données
<a name="aws-glue-programming-etl-s3-express-usage"></a>

AWS Gluela version 5.1\+ prend en charge l'accès aux compartiments de répertoire S3 Express One Zone en utilisant à la fois les schémas d'URI `s3://` et`s3a://`. Aucune configuration supplémentaire n’est requise.

L'exemple suivant montre comment lire et écrire des données à partir d'un bucket d'annuaire S3 Express One Zone dans une tâche AWS Glue ETL :

```
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext

sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
spark = glueContext.spark_session

# S3 Express One Zone directory bucket path
express_path = "s3://EXAMPLE-BUCKET--use1-az4--x-s3/my-data/"

# Read data from S3 Express One Zone
df = spark.read.parquet(express_path)

# Write data to S3 Express One Zone
df.write.mode("overwrite").parquet(express_path + "output/")
```

Vous pouvez également utiliser DynamicFrames avec S3 Express One Zone :

```
# Read with DynamicFrame
dynamicFrame = glueContext.create_dynamic_frame.from_options(
    connection_type="s3",
    connection_options={"paths": [express_path]},
    format="parquet"
)

# Write with DynamicFrame
glueContext.write_dynamic_frame.from_options(
    frame=dynamicFrame,
    connection_type="s3",
    connection_options={"path": express_path + "output/"},
    format="parquet"
)
```