

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Comprendi i prefissi personalizzati per gli oggetti Amazon S3
<a name="s3-prefixes"></a>

<evaluated prefix><suffix>Gli oggetti consegnati ad Amazon S3 seguono il [formato del nome](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#s3-object-namekey) di. Puoi specificare il tuo prefisso personalizzato che include espressioni che vengono valutate in fase di esecuzione. Il prefisso personalizzato specificato sostituirà il prefisso predefinito di. `yyyy/MM/dd/HH`

Puoi utilizzare le seguenti forme di espressione nel prefisso personalizzato: `!{namespace:value}`, dove `namespace` può essere uno dei seguenti, come descritto nelle sezioni successive.
+  `firehose` 
+ `timestamp`
+ `partitionKeyFromQuery`
+ `partitionKeyFromLambda`

Se un prefisso termina con una barra, viene visualizzato come cartella nel bucket Amazon S3. Per ulteriori informazioni, consulta [Amazon S3 Object Name Format](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#s3-object-name) nella *Amazon Data FirehoseDeveloper* Guide.

## Spazio dei nomi `timestamp`
<a name="timestamp-namespace"></a>

[I valori validi per questo spazio dei nomi sono stringhe che sono stringhe Java valide. DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) Ad esempio, nell'anno 2018, l'espressione `!{timestamp:yyyy}` restituisce `2018`. 

Durante la valutazione dei timestamp, Firehose utilizza il timestamp di arrivo approssimativo del record più vecchio contenuto nell'oggetto Amazon S3 in fase di scrittura. 

Per impostazione predefinita, il timestamp è in UTC. Tuttavia, puoi specificare il fuso orario che preferisci. Ad esempio, puoi configurare il fuso orario in Console di gestione AWS o Asia/Tokyo nell'impostazione del parametro API ([CustomTimeZone](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html)) se desideri utilizzare l'ora solare del Giappone anziché l'UTC. Per visualizzare l'elenco dei fusi orari supportati, consulta [Amazon S3 Object Name](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#s3-object-name) Format.

Se utilizzi lo spazio dei nomi `timestamp` più di una volta nella stessa espressione del prefisso, ogni istanza restituisce lo stesso istante temporale.

## Spazio dei nomi `firehose`
<a name="firehose-namespace"></a>

Con questo spazio dei nomi puoi utilizzare due valori: `error-output-type` e `random-string`. La tabella seguente spiega come utilizzarli.


**Valori dello spazio dei nomi `firehose`**  

| Conversione | Description | Input di esempio | Output di esempio | Note | 
| --- | --- | --- | --- | --- | 
| error-output-type | Restituisce una delle seguenti stringhe, a seconda della configurazione del flusso Firehose e del motivo dell'errore: \$1processing-failed, AmazonOpenSearchService -failed, splunk-failed,,\$1. format-conversion-failed http-endpoint-failedSe lo utilizzi più di una volta nella stessa espressione, ogni istanza restituisce la stessa stringa di errore. | myPrefix/result=\$1\$1firehose:error-output-type\$1/\$1\$1timestamp:yyyy/MM/dd\$1 | myPrefix/result=processing-failed/2018/08/03 | Il valore può essere utilizzato solo nel campo. error-output-type ErrorOutputPrefix | 
| random-string |  Restituisce una stringa casuale di 11 caratteri. Se lo utilizzi più di una volta nella stessa espressione, ogni istanza restituisce una nuova stringa casuale.  | myPrefix/\$1\$1firehose:random-string\$1/ | myPrefix/046b6c7f-0b/ | Puoi utilizzarlo con entrambi i tipi di prefisso.Puoi posizionarlo all'inizio della stringa di formato per ottenere un prefisso randomizzato, che talvolta è necessario per ottenere una velocità di trasmissione effettiva estremamente elevata con Amazon S3. | 

## Spazi dei nomi `partitionKeyFromLambda` e `partitionKeyFromQuery`
<a name="dynamic-partitioning-namespaces"></a>

Per il [partizionamento dinamico](dynamic-partitioning.md), è necessario utilizzare il seguente formato di espressione nel prefisso del bucket S3: `!{namespace:value}`, dove lo spazio dei nomi può essere `partitionKeyFromQuery` o `partitionKeyFromLambda` o entrambi. Se si utilizza l'analisi in linea per creare le chiavi di partizionamento per i dati di origine, è necessario specificare un valore del prefisso del bucket S3 costituito da espressioni specificate nel seguente formato: `"partitionKeyFromQuery:keyID"`. Se si utilizza una funzione AWS Lambda per creare chiavi di partizionamento per i dati di origine, è necessario specificare un valore di prefisso del bucket S3 costituito da espressioni specificate nel seguente formato: `"partitionKeyFromLambda:keyID"`. Per ulteriori informazioni, consulta «Scegli Amazon S3 per la tua destinazione» in [Creazione di uno stream Amazon Firehose](basic-create.md#basic-create.title).

## Regole semantiche
<a name="prefix-rules"></a>

Le seguenti regole si applicano alle espressioni `Prefix` e `ErrorOutputPrefix`.
+ Per lo spazio dei nomi `timestamp`, vengono restituiti tutti i caratteri che non sono tra virgolette singole. In altre parole, tutte le stringhe precedute da virgolette singole nel campo dei valori vengono prese alla lettera.
+ Se si specifica un prefisso che non contiene un'espressione dello spazio dei nomi con timestamp, Firehose aggiunge l'espressione al valore nel `!{timestamp:yyyy/MM/dd/HH/}` campo. `Prefix`
+ La sequenza `!{` può comparire solo nelle espressioni `!{namespace:value}`.
+ `ErrorOutputPrefix` può essere null solo `Prefix` non contiene espressioni. In questo caso, `Prefix` valuta `<specified-prefix>yyyy/MM/DDD/HH/` e `ErrorOutputPrefix` valuta `<specified-prefix><error-output-type>yyyy/MM/DDD/HH/`. `DDD` rappresenta il giorno dell'anno.
+ Se specifichi un'espressione per `ErrorOutputPrefix`, devi includere almeno un'istanza di `!{firehose:error-output-type}`.
+ `Prefix` non può contenere `!{firehose:error-output-type}`.
+ Né `Prefix` né `ErrorOutputPrefix` possono contenere più di 512 dopo la restituzione.
+ Se la destinazione è Amazon Redshift, `Prefix` non deve contenere espressioni e `ErrorOutputPrefix` deve essere null.
+ Quando la destinazione è Amazon OpenSearch Service o Splunk e non `ErrorOutputPrefix` viene specificato alcun valore, Firehose utilizza `Prefix` il campo per i record non riusciti. 
+ Quando la destinazione è Amazon S3, `Prefix` e `ErrorOutputPrefix` nella configurazione di destinazione di Amazon S3 vengono utilizzati rispettivamente per record riusciti e record non riusciti. Con l' AWS CLI o l'API, puoi utilizzare `ExtendedS3DestinationConfiguration` per specificare una configurazione di *backup* di Amazon S3 con `Prefix` e `ErrorOutputPrefix`.
+ Quando si utilizza Console di gestione AWS e si imposta la destinazione su Amazon S3, Firehose utilizza la `Prefix` e `ErrorOutputPrefix` nella configurazione di destinazione rispettivamente per i record riusciti e per i record con esito negativo. Se si specifica un prefisso utilizzando espressioni, è necessario specificare il prefisso di errore comprensivo di. `!{firehose:error-output-type}`
+ Quando si utilizza `ExtendedS3DestinationConfiguration` con AWS CLI, l'API o CloudFormation, se si specifica un`S3BackupConfiguration`, Firehose non fornisce un valore predefinito. `ErrorOutputPrefix`
+ Non è possibile utilizzare gli `partitionKeyFromQuery` spazi `partitionKeyFromLambda` dei nomi and durante la creazione di espressioni. ErrorOutputPrefix 

## Esempi di prefisso
<a name="s3-prefix-examples"></a>


**Esempi di `Prefix` e `ErrorOutputPrefix`**  

| Input | Prefisso restituito (alle 10:30 UTC in data 27 ago 2018) | 
| --- | --- | 
|  `Prefix`: non specificato `ErrorOutputPrefix`: `myFirehoseFailures/!{firehose:error-output-type}/`  |  `Prefix`: `2018/08/27/10` `ErrorOutputPrefix`: `myFirehoseFailures/processing-failed/`  | 
|  `Prefix`: `!{timestamp:yyyy/MM/dd}` `ErrorOutputPrefix`: non specificato  | Input non valido: ErrorOutputPrefix non può essere null se Prefix contiene espressioni | 
|  `Prefix`: `myFirehose/DeliveredYear=!{timestamp:yyyy}/anyMonth/rand=!{firehose:random-string}` `ErrorOutputPrefix`: `myFirehoseFailures/!{firehose:error-output-type}/!{timestamp:yyyy}/anyMonth/!{timestamp:dd}`  |  `Prefix`: `myFirehose/DeliveredYear=2018/anyMonth/rand=5abf82daaa5` `ErrorOutputPrefix`: `myFirehoseFailures/processing-failed/2018/anyMonth/10`  | 
| `Prefix`: `myPrefix/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/` `ErrorOutputPrefix`: `myErrorPrefix/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}`  | `Prefix`: `myPrefix/year=2018/month=07/day=06/hour=23/` `ErrorOutputPrefix`: `myErrorPrefix/year=2018/month=07/day=06/hour=23/processing-failed` | 
|  `Prefix`: `myFirehosePrefix/` `ErrorOutputPrefix`: non specificato  |  `Prefix`: `myFirehosePrefix/2018/08/27/` `ErrorOutputPrefix`: `myFirehosePrefix/processing-failed/2018/08/27/`  | 