

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à.

# Stato del flusso di lavoro della mappa
<a name="state-map"></a>

Utilizzate lo `Map` stato per eseguire una serie di passaggi del flusso di lavoro per ogni elemento di un set di dati. Le iterazioni `Map` dello stato vengono eseguite in parallelo, il che rende possibile elaborare rapidamente un set di dati. `Map`gli stati possono utilizzare diversi tipi di input, tra cui un array JSON, un elenco di oggetti Amazon S3 o un file CSV.

Step Functions offre due tipi di modalità di elaborazione per l'utilizzo dello `Map` stato nei flussi di lavoro: modalità *Inline* e modalità *Distributed*.

**Suggerimento**  
*Per implementare un esempio di flusso di lavoro che utilizza uno `Map` stato, consulta [Elaborazione di matrici di dati con Choice e Map](https://catalog.workshops.aws/stepfunctions/choice-and-map) in The Workshop. AWS Step Functions *

## Modalità di elaborazione dello stato della mappa
<a name="concepts-map-process-modes"></a>

Step Functions fornisce le seguenti modalità di elaborazione per lo `Map` stato a seconda di come si desidera elaborare gli elementi in un set di dati. 
+ **Inline: modalità** a concorrenza limitata. In questa modalità, ogni iterazione dello `Map` stato viene eseguita nel contesto del flusso di lavoro che contiene lo stato. `Map` Step Functions aggiunge la cronologia di esecuzione di queste iterazioni alla cronologia di esecuzione del flusso di lavoro principale. Per impostazione predefinita, `Map` gli stati vengono eseguiti in modalità Inline.

  In questa modalità, lo `Map` stato accetta solo un array JSON come input. Inoltre, questa modalità supporta fino a 40 iterazioni simultanee.

  Per ulteriori informazioni, consulta [Utilizzo dello stato della mappa in modalità Inline nei flussi di lavoro Step Functions](state-map-inline.md).
+ **Distribuita**: modalità ad alta concorrenza. In questa modalità, lo `Map` stato esegue ogni iterazione come esecuzione di workflow secondario, il che consente un'elevata concorrenza di un massimo di 10.000 esecuzioni parallele di workflow secondari. Ogni esecuzione del flusso di lavoro secondario ha una propria cronologia di esecuzione separata da quella del flusso di lavoro principale.

  In questa modalità, lo `Map` stato può accettare come input un array JSON o un'origine dati Amazon S3, ad esempio un file CSV.

  Per ulteriori informazioni, consulta [Modalità distribuita](state-map-distributed.md).

La modalità da utilizzare dipende da come si desidera elaborare gli elementi in un set di dati. Utilizzate lo `Map` stato in modalità Inline se la cronologia di esecuzione del flusso di lavoro non supera le 25.000 voci o se non sono necessarie più di 40 iterazioni simultanee.

Usa lo `Map` stato in modalità Distribuita quando devi orchestrare carichi di lavoro paralleli su larga scala che soddisfano qualsiasi combinazione delle seguenti condizioni:
+ La dimensione del set di dati supera i 256 KB.
+ La cronologia degli eventi di esecuzione del flusso di lavoro supererebbe le 25.000 voci.
+ È necessaria una concorrenza di più di 40 iterazioni simultanee.

### Differenze tra modalità in linea e modalità distribuita
<a name="concepts-inline-vs-distributed-map"></a>

La tabella seguente evidenzia le differenze tra le modalità Inline e Distributed.


| Modalità in linea | Modalità distribuita | 
| --- |--- |
| **Supported data sources** | 
| --- |
| Accetta come input un array JSON passato da una fase precedente del flusso di lavoro. |  Accetta le seguenti fonti di dati come input:   Array JSON passato da un passaggio precedente del flusso di lavoro   File JSON in un bucket Amazon S3 che contiene un array   File CSV in un bucket Amazon S3   Elenco oggetti Amazon S3   Inventario Amazon S3    | 
| **Map iterations** | 
| --- |
|  In questa modalità, ogni iterazione dello `Map` stato viene eseguita nel contesto del flusso di lavoro che contiene lo `Map` stato. Step Functions aggiunge la cronologia di esecuzione di queste iterazioni alla cronologia di esecuzione del flusso di lavoro principale.  |  In questa modalità, lo `Map` stato esegue ogni iterazione come esecuzione di workflow secondario, il che consente un'elevata concorrenza di un massimo di 10.000 esecuzioni parallele di workflow secondari. Ogni esecuzione del flusso di lavoro secondario ha una propria cronologia di esecuzione separata da quella del flusso di lavoro principale.  | 
| **Maximum concurrency for parallel iterations** | 
| --- |
| Consente di eseguire fino a 40 iterazioni il più contemporaneamente possibile. | Consente di eseguire fino a 10.000 esecuzioni parallele di flussi di lavoro secondari per elaborare milioni di elementi di dati contemporaneamente. | 
| **Input payload and event history sizes** | 
| --- |
| Implica un limite di 256 KB alla dimensione del payload di input e 25.000 voci nella cronologia degli eventi di esecuzione. | Consente di superare la limitazione delle dimensioni del payload perché `Map` lo stato può leggere l'input direttamente dalle fonti di dati Amazon S3. In questa modalità, puoi anche superare i limiti della cronologia di esecuzione, poiché le esecuzioni dei flussi di lavoro secondari avviate dallo `Map` stato mantengono le proprie cronologie di esecuzione separate dalla cronologia di esecuzione del flusso di lavoro principale.  | 
| **Monitoring and observability** | 
| --- |
|  È possibile rivedere la cronologia di esecuzione del flusso di lavoro dalla console o richiamando l'azione dell'`[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)`API. È inoltre possibile visualizzare la cronologia delle esecuzioni tramite CloudWatch X-Ray.  | Quando si esegue uno `Map` stato in modalità Distribuita, Step Functions crea una risorsa Map Run. Un Map Run si riferisce a un insieme di esecuzioni di workflow secondarie avviate da *uno stato di Distributed Map*. È possibile visualizzare un Map Run nella console Step Functions. Puoi anche richiamare l'azione `[DescribeMapRun](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeMapRun.html)` API. Un Map Run emette anche metriche per. CloudWatch Per ulteriori informazioni, consulta [Visualizzazione di un'esecuzione di una mappa distribuita in Step Functions](concepts-examine-map-run.md). | 

# Utilizzo dello stato della mappa in modalità Inline nei flussi di lavoro Step Functions
<a name="state-map-inline"></a>

**Gestione dello stato e trasformazione dei dati**  
Scopri come [passare dati tra stati con variabili](workflow-variables.md) e [Trasformare dati](transforming-data.md) con. JSONata

Per impostazione predefinita, `Map` gli stati vengono eseguiti in modalità **Inline**. In modalità Inline, lo stato della mappa accetta solo un array JSON come input. Riceve questo array da una fase precedente del flusso di lavoro. In questa modalità, ogni iterazione dello `Map` stato viene eseguita nel contesto del flusso di lavoro che contiene lo `Map` stato. Step Functions aggiunge la cronologia di esecuzione di queste iterazioni alla cronologia di esecuzione del flusso di lavoro principale.

In questa modalità, lo `Map` stato supporta fino a 40 iterazioni simultanee.

Uno `Map` stato impostato su **Inline** è noto come stato *Inline* Map. Utilizza lo `Map` stato in modalità Inline se la cronologia di esecuzione del flusso di lavoro non supera le 25.000 voci o se non sono necessarie più di 40 iterazioni simultanee.

Per un'introduzione all'uso *dello stato della mappa in linea*, consulta il tutorial. [Ripeti le azioni con Inline Map](tutorial-map-inline.md)

**Topics**
+ [Concetti chiave in questo argomento](#key-concepts-inline-map)
+ [Campi di stato della mappa in linea](#map-state-inline-additional-fields)
+ [Campi obsoleti](#map-state-inline-deprecated-fields)
+ [Esempio di stato della mappa in linea () JSONPath](#inline-map-state-examples)
+ [Esempio di stato della mappa in linea con `ItemSelector`](#inline-map-state-example-params)
+ [Elaborazione di input e `Map` output in stato di linea](#inline-map-state-output)

## Concetti chiave in questo argomento
<a name="key-concepts-inline-map"></a>

**Modalità in linea**  
Una modalità di concorrenza limitata dello stato. `Map` In questa modalità, ogni iterazione dello `Map` stato viene eseguita nel contesto del flusso di lavoro che contiene lo stato. `Map` Step Functions aggiunge la cronologia di esecuzione di queste iterazioni alla cronologia di esecuzione del flusso di lavoro principale. `Map`gli stati vengono eseguiti in modalità Inline per impostazione predefinita.  
Questa modalità accetta solo un array JSON come input e supporta fino a 40 iterazioni simultanee.

**Stato della mappa in linea**  
Uno `Map` stato impostato sulla modalità **Inline**.

**Mappa il flusso di lavoro**  
L'insieme di passaggi eseguiti dallo `Map` stato per ogni iterazione.

**Iterazione dello stato della mappa**  
Una ripetizione del flusso di lavoro definito all'interno dello `Map` stato.

## Campi di stato della mappa in linea
<a name="map-state-inline-additional-fields"></a>

Per utilizzare lo *stato Inline Map* nei flussi di lavoro, specifica uno o più di questi campi. Specificate questi campi oltre ai campi di [stato comuni](statemachine-structure.md#amazon-states-language-common-fields).

**`Type` (Obbligatorio)**  
Imposta il tipo di stato, ad esempio`Map`.

**`ItemProcessor` (Obbligatorio)**  
Contiene i seguenti oggetti JSON che specificano la modalità e la definizione di elaborazione `Map` dello stato.  
La definizione contiene l'insieme di passaggi da ripetere per l'elaborazione di ogni elemento dell'array.  
+ `ProcessorConfig`— Un oggetto JSON opzionale che specifica la modalità di elaborazione per lo `Map` stato. Questo oggetto contiene il sottocampo`Mode`. Il valore predefinito di questo campo è`INLINE`, che utilizza `Map` lo stato in modalità Inline.

  In questa modalità, l'errore di qualsiasi iterazione causa il fallimento dello `Map` stato. Tutte le iterazioni si interrompono quando lo `Map` stato fallisce.
+ `StartAt`— specifica una stringa che indica il primo stato di un flusso di lavoro. Questa stringa fa distinzione tra maiuscole e minuscole e deve corrispondere al nome di uno degli oggetti di stato. Questo stato viene eseguito per primo per ogni elemento del set di dati. Qualsiasi input di esecuzione fornito allo `Map` stato passa per primo allo `StartAt` stato.
+ `States`[— Un oggetto JSON contenente un set di stati delimitato da virgole.](workflow-states.md) In questo oggetto, si definisce il. [Map workflow](#mapwflow)
**Nota**  
Gli stati all'interno del `ItemProcessor` campo possono solo passare l'uno dall'altro. Nessuno stato esterno al `ItemProcessor` campo può passare a uno stato al suo interno.
Il `ItemProcessor` campo sostituisce il campo ora obsoleto`Iterator`. Sebbene sia possibile continuare a includere `Map` gli stati che utilizzano il `Iterator` campo, si consiglia vivamente di sostituirlo con. `ItemProcessor`  
[Step Functions Local](sfn-local.md) attualmente non supporta il `ItemProcessor` campo. Si consiglia di utilizzare il `Iterator` campo con Step Functions Local.

**`Items`( JSONata Solo facoltativo)**  
Un array JSON o un' JSONata espressione che deve restituire un array.

**`ItemsPath`( JSONPath Solo facoltativo)**  
Specificate un [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths) utilizzando la [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)sintassi. Questo percorso seleziona il nodo JSON che contiene l'array di elementi all'interno dell'input di stato. Per ulteriori informazioni, consulta [ItemsPath ( JSONPath Solo mappa)](input-output-itemspath.md).

**`ItemSelector` (facoltativo).**  
Sostituisce i valori degli elementi dell'array di input prima che vengano passati a ciascuna iterazione di stato. `Map`  
In questo campo, si specifica un JSON valido che contiene una raccolta di coppie chiave-valore. Queste coppie possono contenere uno dei seguenti elementi:  
+ Valori statici definiti nella definizione della macchina a stati.
+ Valori selezionati dall'input dello stato utilizzando un [percorso](amazon-states-language-paths.md).
+ Valori a cui si accede dall'[oggetto contestuale](input-output-contextobject.md).
 Per ulteriori informazioni, consulta [ItemSelector (Mappa)](input-output-itemselector.md).  
Il `ItemSelector` campo sostituisce il campo ora obsoleto`Parameters`. Sebbene sia possibile continuare a includere `Map` gli stati che utilizzano il `Parameters` campo, si consiglia vivamente di sostituirlo con. `ItemSelector`

**`MaxConcurrency` (facoltativo).**  
Specifica un valore intero che fornisce il limite superiore del numero di iterazioni di `Map` stato che possono essere eseguite in parallelo. Ad esempio, un `MaxConcurrency` valore pari a 10 limita lo `Map` stato a 10 iterazioni simultanee eseguite contemporaneamente.  
 Negli JSONata stati, è possibile specificare un' JSONata espressione che restituisca un numero intero.  
Le iterazioni simultanee possono essere limitate. Quando ciò si verifica, alcune iterazioni non inizieranno fino al completamento delle iterazioni precedenti. La probabilità che ciò si verifichi aumenta quando l'array di input contiene più di 40 elementi.  
Per ottenere una maggiore concorrenza, considera. [Modalità distribuita](state-map-distributed.md)
Il valore predefinito è`0`, che non pone limiti alla concorrenza. Step Functions richiama le iterazioni il più simultaneamente possibile.   
`MaxConcurrency`Il valore di `1` invoca una volta per ogni elemento dell'`ItemProcessor`array. Gli elementi dell'array vengono elaborati nell'ordine in cui appaiono nell'input. Step Functions non avvia una nuova iterazione finché non completa l'iterazione precedente.

**`MaxConcurrencyPath`(Solo facoltativo) JSONPath **  
Se desideri fornire un valore di concorrenza massimo in modo dinamico dall'input dello stato utilizzando un percorso di riferimento, usa. `MaxConcurrencyPath` Una volta risolto, il percorso di riferimento deve selezionare un campo il cui valore è un numero intero non negativo.  
Uno `Map` stato non può includere entrambi `MaxConcurrency` e. `MaxConcurrencyPath`

**`ResultPath`( JSONPath Solo facoltativo)**  
Speciifica dove, nell'input, deve essere memorizzato l'output delle iterazioni dello `Map` stato. Lo stato Mappa filtra quindi l'input come specificato dal [`OutputPath`](input-output-example.md#input-output-outputpath)campo, se specificato. Quindi, utilizza l'input filtrato come output dello stato. Per ulteriori informazioni, consultare [Elaborazione di input e output](concepts-input-output-filtering.md).

**`ResultSelector`( JSONPath Solo facoltativo)**  
Passa una raccolta di coppie chiave-valore, in cui i valori sono statici o selezionati dal risultato. Per ulteriori informazioni, consulta [ResultSelector](input-output-inputpath-params.md#input-output-resultselector).  
Se lo stato Parallel o Map che usi nelle tue macchine a stati restituisce un array di array, puoi trasformarli in un array flat con il [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) campo. Per ulteriori informazioni, consulta [Appiattimento di una serie di array](input-output-inputpath-params.md#flatten-array-of-arrays-result-selector).

**`Retry` (facoltativo).**  
Una serie di oggetti, denominati Retriers, che definiscono una politica di nuovi tentativi. Gli stati utilizzano una politica di nuovo tentativo quando riscontrano errori di runtime. Per ulteriori informazioni, consulta [Esempi di macchine a stati che utilizzano Retry e Catch](concepts-error-handling.md#error-handling-examples).  
Se definisci Retriers per *lo stato Inline Map*, la politica di riprova si applica a tutte le iterazioni di `Map` stato, anziché solo alle iterazioni fallite. Ad esempio, `Map` lo stato contiene due iterazioni riuscite e un'iterazione fallita. Se avete definito il `Retry` campo per `Map` lo stato, la politica di riprova si applica a tutte e tre le iterazioni di `Map` stato anziché solo all'iterazione fallita.

**`Catch` (facoltativo).**  
Un array di oggetti, denominati catcher, che definiscono uno stato di fallback. Gli stati eseguono un catcher se riscontrano errori di runtime e non dispongono di una politica di ripetizione dei tentativi oppure la politica di ripetizione dei tentativi è esaurita. Per ulteriori informazioni, consulta [Stati di fallback](concepts-error-handling.md#error-handling-fallback-states).

**`Output`(Solo facoltativo) JSONata **  
Utilizzato per specificare e trasformare l'output dello stato. Quando specificato, il valore ha la precedenza sullo stato di output predefinito.   
Il campo di output accetta qualsiasi valore JSON (oggetto, array, stringa, numero, booleano, null). Qualsiasi valore di stringa, inclusi quelli all'interno di oggetti o array, verrà valutato come JSONata se fosse circondato da \$1%%\$1 caratteri.  
 Output accetta anche direttamente un' JSONata espressione, ad esempio: «Output»: «\$1% jsonata expression%\$1»   
Per ulteriori informazioni, consulta [Trasformazione dei dati con Step JSONata Functions](transforming-data.md).

** `Assign` (facoltativo).**  
Utilizzato per memorizzare variabili. Il `Assign` campo accetta un oggetto JSON con key/value coppie che definiscono i nomi delle variabili e i valori assegnati. Qualsiasi valore di stringa, compresi quelli all'interno di oggetti o matrici, verrà valutato come JSONata se fosse circondato da caratteri `{% %}`  
Per ulteriori informazioni, consulta [Passaggio di dati tra stati con variabili](workflow-variables.md).

## Campi obsoleti
<a name="map-state-inline-deprecated-fields"></a>

**Nota**  
Sebbene sia possibile continuare a includere `Map` stati che utilizzano i seguenti campi, consigliamo vivamente di sostituirli `Iterator` con e con`ItemProcessor`. `Parameters` `ItemSelector`

** `Iterator`**  
Specifica un oggetto JSON che definisce una serie di passaggi che elaborano ogni elemento dell'array.

**`Parameters`**  
Specifica una raccolta di coppie chiave-valore, in cui i valori possono contenere uno dei seguenti elementi:  
+ Valori statici definiti nella definizione della macchina a stati.
+ Valori selezionati dall'input utilizzando un [percorso](amazon-states-language-paths.md).

## Esempio di stato della mappa in linea () JSONPath
<a name="inline-map-state-examples"></a>

Considerate i seguenti dati di input per uno `Map` stato in esecuzione in modalità **Inline**.

```
{
  "ship-date": "2016-03-14T01:59:00Z",
  "detail": {
    "delivery-partner": "UQS",
    "shipped": [
      { "prod": "R31", "dest-code": 9511, "quantity": 1344 },
      { "prod": "S39", "dest-code": 9511, "quantity": 40 },
      { "prod": "R31", "dest-code": 9833, "quantity": 12 },
      { "prod": "R40", "dest-code": 9860, "quantity": 887 },
      { "prod": "R40", "dest-code": 9511, "quantity": 1220 }
    ]
  }
}
```

Dato l'input precedente, lo `Map` stato dell'esempio seguente richiama una AWS Lambda funzione denominata `ship-val` una volta per ogni elemento dell'array nel campo. `shipped` 

```
"Validate All": {
    "Type": "Map",
    "InputPath": "$.detail",
    "ItemProcessor": {
        "ProcessorConfig": {
            "Mode": "INLINE"
        },
        "StartAt": "Validate",
        "States": {
            "Validate": {
                "Type": "Task",
                "Resource": "arn:aws:states:::lambda:invoke",
                "OutputPath": "$.Payload",
                "Parameters": {
                    "FunctionName": "arn:aws:lambda:us-east-2:account-id:function:ship-val:$LATEST"
                },
                "End": true
            }
        }
    },
    "End": true,
    "ResultPath": "$.detail.shipped",
    "ItemsPath": "$.shipped"
}
```

Ogni iterazione dello `Map` stato invia un elemento dell'array, selezionato con il [`ItemsPath`](input-output-itemspath.md)campo, come input per la funzione `ship-val` Lambda. I seguenti valori sono un esempio di input che lo `Map` stato invia a una chiamata della funzione Lambda:

```
{
  "prod": "R31",
  "dest-code": 9511,
  "quantity": 1344
}
```

Al termine, l'output dello stato `Map` è un array JSON, dove ogni item è l'output di un'iterazione. In questo caso, questo array contiene l'output della funzione `ship-val` Lambda.

## Esempio di stato della mappa in linea con `ItemSelector`
<a name="inline-map-state-example-params"></a>

Supponiamo che la funzione `ship-val` Lambda dell'esempio precedente richieda anche informazioni sul corriere della spedizione. Queste informazioni si aggiungono agli elementi dell'array per ogni iterazione. È possibile includere informazioni provenienti dall'input, insieme a informazioni specifiche sull'iterazione corrente dello `Map` stato. Notate il `ItemSelector` campo nell'esempio seguente:

```
"Validate-All": {
  "Type": "Map",
  "InputPath": "$.detail",
  "ItemsPath": "$.shipped",
  "MaxConcurrency": 0,
  "ResultPath": "$.detail.shipped",
  "ItemSelector": {
    "parcel.$": "$$.Map.Item.Value",
    "courier.$": "$.delivery-partner"
  },
  "ItemProcessor": {
    "StartAt": "Validate",
    "States": {
      "Validate": {
        "Type": "Task",
	"Resource": "arn:aws:lambda:region:account-id:function:ship-val",
        "End": true
      }
    }
  },
  "End": true
}
```

Il `ItemSelector` blocco sostituisce l'input delle iterazioni con un nodo JSON. Questo nodo contiene sia i dati dell'articolo corrente dall'[oggetto Context](input-output-contextobject.md#contextobject-map) sia le informazioni sul corriere dal campo dell'input dello `Map` stato. `delivery-partner` Di seguito è riportato un esempio di input per una singola iterazione. Lo `Map` stato passa questo input a una chiamata della funzione Lambda`ship-val`.

```
{
  "parcel": {
    "prod": "R31",
    "dest-code": 9511,
    "quantity": 1344
   },
   "courier": "UQS"
}
```

Nel precedente esempio di *stato Inline Map*, il `ResultPath` campo produce un output nello stesso formato dell'input. Tuttavia, sovrascrive il `detail.shipped` campo con un array in cui ogni elemento è l'output della chiamata Lambda `ship-val` di ogni iterazione.

Per ulteriori informazioni sull'utilizzo *dello stato dello stato della mappa inline* e dei relativi campi, consulta quanto segue.
+ [Ripeti le azioni con Inline Map](tutorial-map-inline.md)
+ [Elaborazione di input e output in Step Functions](concepts-input-output-filtering.md)
+ [ItemsPath ( JSONPath Solo mappa)](input-output-itemspath.md)
+ [Dati contestuali degli oggetti per gli stati della mappa](input-output-contextobject.md#contextobject-map)

## Elaborazione di input e `Map` output in stato di linea
<a name="inline-map-state-output"></a>

Per un determinato `Map` stato, [`InputPath`](input-output-inputpath-params.md#input-output-inputpath)seleziona un sottoinsieme dell'input dello stato.

L'input di uno `Map` stato deve includere un array JSON. Lo `Map` stato esegue la `ItemProcessor` sezione una volta per ogni elemento dell'array. Se si specifica il [`ItemsPath`](input-output-itemspath.md)campo, `Map` lo stato seleziona la posizione dell'input per trovare l'array su cui eseguire l'iterazione. Se non è specificato, il valore di `ItemsPath` è `$` e la sezione `ItemProcessor` prevede che l'array sia l'unico input. Se specificate il `ItemsPath` campo, il suo valore deve essere un percorso di [riferimento.](amazon-states-language-paths.md#amazon-states-language-reference-paths) Lo `Map` stato applica questo percorso all'input effettivo dopo aver applicato il`InputPath`. `ItemsPath`Deve identificare un campo il cui valore è un array JSON.

L'input per ogni iterazione, per impostazione predefinita, è un singolo elemento del campo dell'array identificato dal `ItemsPath` valore. È possibile sovrascrivere questo valore con il `ItemSelector (Mappa)` campo.

Al termine, l'output dello stato `Map` è un array JSON, dove ogni item è l'output di un'iterazione.

 Per ulteriori informazioni sugli input e gli output dello stato di Inline Map, consulta quanto segue:
+ [Ripeti le azioni con Inline Map](tutorial-map-inline.md)
+ [Esempio di stato della mappa in linea con `ItemSelector`](#inline-map-state-example-params)
+ [Elaborazione di input e output in Step Functions](concepts-input-output-filtering.md)
+ [Dati contestuali degli oggetti per gli stati della mappa](input-output-contextobject.md#contextobject-map)
+ [Elabora i dati da una coda con uno stato della mappa in Step Functions](sample-map-state.md)

# Utilizzo dello stato della mappa in modalità Distribuita per carichi di lavoro paralleli su larga scala in Step Functions
<a name="state-map-distributed"></a>

**Gestione dello stato e trasformazione dei dati**  
Scopri come [passare dati tra stati con variabili](workflow-variables.md) e [Trasformare dati](transforming-data.md) con. JSONata

Con Step Functions, puoi orchestrare carichi di lavoro paralleli su larga scala per eseguire attività, come l'elaborazione su richiesta di dati semistrutturati. Questi carichi di lavoro paralleli consentono di elaborare contemporaneamente sorgenti di dati su larga scala archiviate in Amazon S3. Ad esempio, potresti elaborare un singolo file JSON o CSV che contiene grandi quantità di dati. Oppure potresti elaborare un ampio set di oggetti Amazon S3. 

Per configurare un carico di lavoro parallelo su larga scala nei flussi di lavoro, includi uno `Map` stato in modalità Distribuita. Lo *stato della mappa* elabora gli elementi in un set di dati contemporaneamente. Uno `Map` stato impostato su **Distributed** è noto come stato *Distributed Map*. In *modalità Distribuita*, lo `Map` stato consente l'elaborazione ad alta concorrenza. *In modalità distribuita, `Map` lo stato elabora gli elementi del set di dati in iterazioni denominate esecuzioni secondarie del flusso di lavoro.* È possibile specificare il numero di esecuzioni di workflow secondarie che possono essere eseguite in parallelo. Ogni esecuzione del flusso di lavoro secondario ha una propria cronologia di esecuzione separata da quella del flusso di lavoro principale. Se non lo specifichi, Step Functions esegue 10.000 esecuzioni parallele di flussi di lavoro secondari in parallelo.

La seguente illustrazione spiega come configurare carichi di lavoro paralleli su larga scala nei flussi di lavoro.

![\[Diagramma per illustrare il concetto di orchestrazione di carichi di lavoro paralleli su larga scala.\]](http://docs.aws.amazon.com/it_it/step-functions/latest/dg/images/autobahn-concept.png)


**Impara in un seminario**  
Scopri come le tecnologie serverless come Step Functions e Lambda possono semplificare la gestione e la scalabilità, ridurre il carico di attività indifferenziate e affrontare le sfide dell'elaborazione distribuita dei dati su larga scala. Lungo il percorso, utilizzerai mappe distribuite per l'elaborazione ad alta concorrenza. Il workshop presenta anche le migliori pratiche per l'ottimizzazione dei flussi di lavoro e casi d'uso pratici per l'elaborazione dei reclami, la scansione delle vulnerabilità e la simulazione Monte Carlo.  
**Workshop: [Elaborazione di dati su larga scala con Step Functions](https://catalog.workshops.aws/serverless-data-processing)**

**Topics**
+ [Termini chiave](#dist-map-orchestrate-parallel-workloads-key-terms)
+ [Definizione dello stato della mappa distribuita](#use-map-state-dist-mode)
+ [Autorizzazioni per eseguire Distributed Map](#dist-map-permissions)
+ [Campi relativi allo stato della mappa distribuita](#map-state-distributed-additional-fields)
+ [Soglie di errore delle mappe distribuite](#maprun-fail-threshold)
+ [Scopri di più sulle mappe distribuite](#dist-map-next-steps)

## Termini chiave
<a name="dist-map-orchestrate-parallel-workloads-key-terms"></a>

**Modalità distribuita**  
Una modalità di elaborazione [dello stato della mappa](state-map.md). In questa modalità, ogni iterazione dello `Map` stato viene eseguita come un'esecuzione secondaria del flusso di lavoro che consente un'elevata concorrenza. Ogni esecuzione del flusso di lavoro secondario ha la propria cronologia di esecuzione, che è separata dalla cronologia di esecuzione del flusso di lavoro principale. Questa modalità supporta la lettura di input da fonti di dati Amazon S3 su larga scala. 

**Stato della mappa distribuita**  
Uno stato della mappa impostato sulla [modalità di elaborazione](state-map.md#concepts-map-process-modes) **distribuita**.

**Workflow della mappa**  
Una serie di passaggi eseguiti da uno `Map` stato.

**Flusso di lavoro principale**  
Un flusso di lavoro che contiene uno o più stati della mappa distribuita.

**Esecuzione del workflow secondario**  
Un'iterazione dello *stato della mappa distribuita*. L'esecuzione di un flusso di lavoro secondario ha una propria cronologia di esecuzione, che è separata dalla cronologia di esecuzione del flusso di lavoro principale.

**Esegui mappa**  
Quando si esegue uno `Map` stato in modalità Distribuita, Step Functions crea una risorsa Map Run. Un Map Run si riferisce a un insieme di esecuzioni di workflow secondarie avviate da *uno stato di Distributed Map* e alle impostazioni di runtime che controllano queste esecuzioni. Step Functions assegna un Amazon Resource Name (ARN) a Map Run. È possibile esaminare un Map Run nella console Step Functions. Puoi anche richiamare l'azione `[DescribeMapRun](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeMapRun.html)` API.  
Le esecuzioni secondarie del flusso di lavoro di un Map Run emettono metriche a;. CloudWatch Queste metriche avranno un ARN etichettato State Machine con il seguente formato:  
 `arn:partition:states:region:account:stateMachine:stateMachineName/MapRunLabel or UUID`   
Per ulteriori informazioni, consulta [Visualizzazione delle corse delle mappe](concepts-examine-map-run.md).

## Esempio di definizione dello stato della mappa distribuita () JSONPath
<a name="use-map-state-dist-mode"></a>

Usa lo `Map` stato in modalità Distribuita quando devi orchestrare carichi di lavoro paralleli su larga scala che soddisfano qualsiasi combinazione delle seguenti condizioni:
+ La dimensione del set di dati supera i 256 KB.
+ La cronologia degli eventi di esecuzione del flusso di lavoro supererebbe le 25.000 voci.
+ È necessaria una concorrenza di più di 40 iterazioni simultanee.

Il seguente esempio di definizione *dello stato di Distributed Map* specifica il set di dati come file CSV archiviato in un bucket Amazon S3. Specifica inoltre una funzione Lambda che elabora i dati in ogni riga del file CSV. Poiché questo esempio utilizza un file CSV, specifica anche la posizione delle intestazioni delle colonne CSV. Per visualizzare la definizione completa di macchina a stati di questo esempio, consulta il tutorial [Copiare dati CSV su larga scala utilizzando Distributed Map](tutorial-map-distributed.md).

```
{
  "Map": {
    "Type": "Map",
    "ItemReader": {
      "ReaderConfig": {
        "InputType": "CSV",
        "CSVHeaderLocation": "FIRST_ROW"
      },
      "Resource": "arn:aws:states:::s3:getObject",
      "Parameters": {
        "Bucket": "amzn-s3-demo-bucket",
        "Key": "csv-dataset/ratings.csv"
      }
    },
    "ItemProcessor": {
      "ProcessorConfig": {
        "Mode": "DISTRIBUTED",
        "ExecutionType": "EXPRESS"
      },
      "StartAt": "LambdaTask",
      "States": {
        "LambdaTask": {
          "Type": "Task",
          "Resource": "arn:aws:states:::lambda:invoke",
          "OutputPath": "$.Payload",
          "Parameters": {
            "Payload.$": "$",
            "FunctionName": "arn:aws:lambda:us-east-2:account-id:function:processCSVData"
          },
          "End": true
        }
      }
    },
    "Label": "Map",
    "End": true,
    "ResultWriter": {
      "Resource": "arn:aws:states:::s3:putObject",
      "Parameters": {
        "Bucket": "amzn-s3-demo-destination-bucket",
        "Prefix": "csvProcessJobs"
      }
    }
  }
}
```

## Autorizzazioni per eseguire Distributed Map
<a name="dist-map-permissions"></a>

Quando includi *uno stato della mappa distribuita* nei flussi di lavoro, Step Functions necessita delle autorizzazioni appropriate per consentire al ruolo della macchina a stati di richiamare l'azione `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API per lo stato della mappa *distribuita*.

*Il seguente esempio di policy IAM concede i privilegi minimi richiesti al ruolo della macchina a stati per l'esecuzione dello stato della mappa distribuita.*

**Nota**  
Assicurati di sostituirlo `stateMachineName` con il nome della macchina a stati in cui stai utilizzando lo stato *Distributed Map*. Ad esempio, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
    }
  ]
}
```

 Inoltre, devi assicurarti di disporre dei privilegi minimi necessari per accedere alle AWS risorse utilizzate nello *stato della mappa distribuita*, come i bucket Amazon S3. Per informazioni, consulta [Politiche IAM per l'utilizzo degli stati della mappa distribuita](iam-policies-eg-dist-map.md).

## Campi relativi allo stato della mappa distribuita
<a name="map-state-distributed-additional-fields"></a>

Per utilizzare lo *stato della mappa distribuita* nei flussi di lavoro, specifica uno o più di questi campi. È possibile specificare questi campi in aggiunta ai [campi di stato comuni](statemachine-structure.md#amazon-states-language-common-fields).

**`Type` (Obbligatorio)**  
Imposta il tipo di stato, ad esempio`Map`.

**`ItemProcessor` (Obbligatorio)**  
Contiene i seguenti oggetti JSON che specificano la modalità e la definizione di elaborazione `Map` dello stato.  
+ <a name="childworkflows"></a>`ProcessorConfig`— Oggetto JSON che specifica la modalità di elaborazione degli elementi, con i seguenti sottocampi:
  + `Mode`— Impostato per **DISTRIBUTED** utilizzare `Map` lo stato in modalità Distribuita.
**avvertimento**  
La modalità distribuita è supportata nei flussi di lavoro Standard ma non è supportata nei flussi di lavoro Express.
  + `ExecutionType`**— Speciifica il tipo di esecuzione per il flusso di lavoro Map come **STANDARD** o EXPRESS.** È necessario fornire questo campo se è stato specificato `DISTRIBUTED` per il `Mode` sottocampo. Per ulteriori informazioni sui tipi di flusso di lavoro, vedere[Scelta del tipo di flusso di lavoro in Step Functions](choosing-workflow-type.md).
+ `StartAt`— specifica una stringa che indica il primo stato di un flusso di lavoro. Questa stringa fa distinzione tra maiuscole e minuscole e deve corrispondere al nome di uno degli oggetti di stato. Questo stato viene eseguito per primo per ogni elemento del set di dati. Qualsiasi input di esecuzione fornito allo `Map` stato passa per primo allo `StartAt` stato.
+ `States`[— Un oggetto JSON contenente un set di stati delimitato da virgole.](workflow-states.md) In questo oggetto, si definisce il. [Map workflow](state-map-inline.md#mapwflow)

**`ItemReader`**  
Speciifica un set di dati e la sua posizione. Lo `Map` stato riceve i dati di input dal set di dati specificato.  
In modalità distribuita, puoi utilizzare un payload JSON passato da uno stato precedente o un'origine dati Amazon S3 su larga scala come set di dati. Per ulteriori informazioni, consulta [ItemReader (Mappa)](input-output-itemreader.md).

**`Items`(Solo facoltativo) JSONata **  
Un array JSON, un oggetto JSON o un' JSONata espressione che deve restituire un array o un oggetto.

**`ItemsPath`(Solo facoltativo) JSONPath **  
Specifica un [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths) utilizzando la [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)sintassi per selezionare il nodo JSON che contiene una matrice di elementi o un oggetto con coppie chiave-valore all'interno dell'input di stato.  
In modalità distribuita, si specifica questo campo solo quando si utilizza un array o un oggetto JSON di un passaggio precedente come input di stato. Per ulteriori informazioni, consulta [ItemsPath ( JSONPath Solo mappa)](input-output-itemspath.md).

**`ItemSelector`( JSONPath Solo facoltativo)**  
Sostituisce i valori dei singoli elementi del set di dati prima che vengano passati a ciascuna `Map` iterazione di stato.   
In questo campo, specifichi un input JSON valido che contiene una raccolta di coppie chiave-valore. [Queste coppie possono essere valori statici definiti nella definizione della macchina a stati, valori selezionati dall'input di stato utilizzando un [percorso](amazon-states-language-paths.md) o valori a cui si accede dall'oggetto di contesto.](input-output-contextobject.md) Per ulteriori informazioni, consulta [ItemSelector (Mappa)](input-output-itemselector.md).

**`ItemBatcher` (facoltativo).**  
Speciifica di elaborare gli elementi del set di dati in batch. Ogni esecuzione secondaria del flusso di lavoro riceve quindi un batch di questi elementi come input. Per ulteriori informazioni, consulta [ItemBatcher (Mappa)](input-output-itembatcher.md).

**`MaxConcurrency` (facoltativo).**  
Speciifica il numero di esecuzioni di workflow secondarie che possono essere eseguite in parallelo. L'interprete consente solo fino al numero specificato di esecuzioni parallele di flussi di lavoro secondari. Se non specificate un valore di concorrenza o lo impostate su zero, Step Functions non limita la concorrenza ed esegue 10.000 esecuzioni parallele di workflow secondari. Negli JSONata stati, è possibile specificare un' JSONata espressione che restituisca un numero intero.  
Sebbene sia possibile specificare un limite di concorrenza più elevato per le esecuzioni di flussi di lavoro secondari paralleli, si consiglia di non superare la capacità di un AWS servizio downstream, ad esempio. AWS Lambda

**`MaxConcurrencyPath`(Solo facoltativo) JSONPath **  
Se desideri fornire un valore di concorrenza massimo in modo dinamico dall'input dello stato utilizzando un percorso di riferimento, usa. `MaxConcurrencyPath` Una volta risolto, il percorso di riferimento deve selezionare un campo il cui valore è un numero intero non negativo.  
Uno `Map` stato non può includere entrambi `MaxConcurrency` e. `MaxConcurrencyPath`

**`ToleratedFailurePercentage` (facoltativo).**  
Definisce la percentuale di elementi non riusciti da tollerare in una Map Run. La Map Run fallisce automaticamente se supera questa percentuale. Step Functions calcola la percentuale di articoli non riusciti come risultato del numero totale di articoli non riusciti o scaduti diviso per il numero totale di articoli. È necessario specificare un valore compreso tra zero e 100. Per ulteriori informazioni, consulta [Impostazione delle soglie di errore per gli stati della mappa distribuita in Step Functions](#maprun-fail-threshold).  
 Negli JSONata stati, è possibile specificare un' JSONata espressione che restituisca un numero intero.

**`ToleratedFailurePercentagePath`(Solo facoltativo) JSONPath **  
Se si desidera fornire dinamicamente un valore percentuale di errore tollerato in base allo stato immesso utilizzando un percorso di riferimento, utilizzare. `ToleratedFailurePercentagePath` Una volta risolto, il percorso di riferimento deve selezionare un campo il cui valore è compreso tra zero e 100.

**`ToleratedFailureCount` (facoltativo).**  
Definisce il numero di elementi non riusciti da tollerare in una Map Run. La Map Run fallisce automaticamente se supera questo numero. Per ulteriori informazioni, consulta [Impostazione delle soglie di errore per gli stati della mappa distribuita in Step Functions](#maprun-fail-threshold).  
 Negli JSONata stati, è possibile specificare un' JSONata espressione che restituisca un numero intero.

**`ToleratedFailureCountPath`(Solo facoltativo) JSONPath **  
Se si desidera fornire un valore di conteggio degli errori tollerati in modo dinamico a partire dallo stato di input utilizzando un percorso di riferimento, utilizzare. `ToleratedFailureCountPath` Una volta risolto, il percorso di riferimento deve selezionare un campo il cui valore è un numero intero non negativo.

**`Label` (facoltativo).**  
Una stringa che identifica in modo univoco uno stato. `Map` Per ogni Map Run, Step Functions aggiunge l'etichetta al Map Run ARN. Di seguito è riportato un esempio di Map Run ARN con un'etichetta personalizzata denominata: `demoLabel`  

```
arn:aws:states:region:account-id:mapRun:demoWorkflow/demoLabel:3c39a231-69bb-3d89-8607-9e124eddbb0b
```
Se non specificate un'etichetta, Step Functions genera automaticamente un'etichetta univoca.   
Le etichette non possono superare i 40 caratteri di lunghezza, devono essere univoche all'interno di una definizione di macchina a stati e non possono contenere nessuno dei seguenti caratteri:  
+ Spazi bianchi
+ Caratteri jolly () `? *`
+ Caratteri tra parentesi () `< > { } [ ]`
+ Caratteri speciali () `: ; , \ | ^ ~ $ # % & ` "`
+ Caratteri di controllo (`\\u0000`- `\\u001f` o `\\u007f` -`\\u009f`).
Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono caratteri non ASCII. Poiché tali caratteri impediranno ad Amazon CloudWatch di registrare i dati, consigliamo di utilizzare solo caratteri ASCII per tenere traccia delle metriche di Step Functions.

**`ResultWriter` (facoltativo).**  
Speciifica la posizione Amazon S3 in cui Step Functions scrive tutti i risultati di esecuzione dei flussi di lavoro secondari.  
Step Functions consolida tutti i dati di esecuzione del workflow secondario, come input e output dell'esecuzione, ARN e stato di esecuzione. Quindi esporta le esecuzioni con lo stesso stato nei rispettivi file nella posizione Amazon S3 specificata. Per ulteriori informazioni, consulta [ResultWriter (Mappa)](input-output-resultwriter.md).  
Se non esporti i risultati dello `Map` stato, restituisce una matrice di tutti i risultati di esecuzione del flusso di lavoro secondario. Esempio:  

```
[1, 2, 3, 4, 5]
```

**`ResultPath`( JSONPath Solo facoltativo)**  
Specifa in che punto dell'input inserire l'output delle iterazioni. L'input viene quindi filtrato come specificato dal [`OutputPath`](input-output-example.md#input-output-outputpath)campo, se presente, prima di essere passato come output dello stato. Per ulteriori informazioni, consultare [Elaborazione di input e output](concepts-input-output-filtering.md).

**`ResultSelector` (facoltativo).**  
Passa una raccolta di coppie chiave-valore, in cui i valori sono statici o selezionati dal risultato. Per ulteriori informazioni, consulta [ResultSelector](input-output-inputpath-params.md#input-output-resultselector).  
Se lo stato Parallel o Map che usi nelle tue macchine a stati restituisce un array di array, puoi trasformarli in un array flat con il campo. [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) Per ulteriori informazioni, consulta [Appiattimento di una serie di array](input-output-inputpath-params.md#flatten-array-of-arrays-result-selector).

**`Retry` (facoltativo).**  
Una serie di oggetti, denominati Retriers, che definiscono una politica di nuovi tentativi. Un'esecuzione utilizza la politica di riprova se lo stato rileva errori di runtime. Per ulteriori informazioni, consulta [Esempi di macchine a stati che utilizzano Retry e Catch](concepts-error-handling.md#error-handling-examples).  
Se si definiscono Retriers per *lo stato Distributed Map*, la politica di nuovo tentativo si applica a tutte le esecuzioni di workflow secondarie avviate dallo stato. `Map` Ad esempio, immaginate che il vostro `Map` stato abbia avviato tre esecuzioni secondarie di workflow, di cui una fallisce. Quando si verifica l'errore, l'esecuzione utilizza il `Retry` campo, se definito, per lo `Map` stato. La politica dei nuovi tentativi si applica a tutte le esecuzioni dei flussi di lavoro secondari e non solo a quelle non riuscite. Se una o più esecuzioni di workflow secondarie falliscono, Map Run non riesce.  
Quando si riprova uno `Map` stato, viene creata una nuova Map Run.

**`Catch` (facoltativo).**  
Un array di oggetti, denominati catcher, che definiscono uno stato di fallback. Step Functions utilizza i Catcher definiti in `Catch` se lo stato rileva errori di runtime. Quando si verifica un errore, l'esecuzione utilizza innanzitutto tutti i retrier definiti in. `Retry` Se la politica di riprova non è definita o è esaurita, l'esecuzione utilizza i relativi Catcher, se definiti. Per ulteriori informazioni, consulta [Stati di fallback](concepts-error-handling.md#error-handling-fallback-states).

**`Output`(Solo facoltativo) JSONata **  
Utilizzato per specificare e trasformare l'output dello stato. Quando specificato, il valore ha la precedenza sullo stato di output predefinito.   
Il campo di output accetta qualsiasi valore JSON (oggetto, array, stringa, numero, booleano, null). Qualsiasi valore di stringa, inclusi quelli all'interno di oggetti o array, verrà valutato come JSONata se fosse circondato da \$1%%\$1 caratteri.  
 Output accetta anche direttamente un' JSONata espressione, ad esempio: «Output»: «\$1% jsonata expression%\$1»   
Per ulteriori informazioni, consulta [Trasformazione dei dati con Step JSONata Functions](transforming-data.md).

** `Assign` (facoltativo).**  
Utilizzato per memorizzare variabili. Il `Assign` campo accetta un oggetto JSON con key/value coppie che definiscono i nomi delle variabili e i valori assegnati. Qualsiasi valore di stringa, compresi quelli all'interno di oggetti o matrici, verrà valutato come JSONata se fosse circondato da caratteri `{% %}`  
Per ulteriori informazioni, consulta [Passaggio di dati tra stati con variabili](workflow-variables.md).

## Impostazione delle soglie di errore per gli stati della mappa distribuita in Step Functions
<a name="maprun-fail-threshold"></a>

Quando orchestri carichi di lavoro paralleli su larga scala, puoi anche definire una soglia di errore tollerata. [Questo valore consente di specificare il numero massimo o la percentuale di elementi non riusciti come soglia di errore per una Map Run.](concepts-examine-map-run.md) A seconda del valore specificato, Map Run fallisce automaticamente se supera la soglia. Se si specificano entrambi i valori, il flusso di lavoro ha esito negativo quando supera uno dei due valori.

Specificare una soglia consente di fallire un numero specifico di elementi prima che l'intera Map Run abbia esito negativo. Step Functions restituisce un `States.ExceedToleratedFailureThreshold` errore quando Map Run fallisce perché viene superata la soglia specificata.

**Nota**  
Step Functions può continuare a eseguire flussi di lavoro secondari in una Map Run anche dopo il superamento della soglia di errore tollerata, ma prima che Map Run fallisca.

**Per specificare il valore di soglia in Workflow Studio, selezionare **Imposta una soglia di errore tollerata** in **Configurazione aggiuntiva nel campo Impostazioni** di runtime.**

**Percentuale di fallimento tollerato**  
Definisce la percentuale di articoli non riusciti da tollerare. Il Map Run fallisce se questo valore viene superato. Step Functions calcola la percentuale di articoli non riusciti come risultato del numero totale di articoli non riusciti o scaduti diviso per il numero totale di articoli. È necessario specificare un valore compreso tra zero e 100. Il valore percentuale predefinito è zero, il che significa che il flusso di lavoro ha esito negativo se una delle sue esecuzioni secondarie del flusso di lavoro fallisce o scade. Se si specifica la percentuale come 100, il flusso di lavoro non avrà esito negativo anche se tutte le esecuzioni del flusso di lavoro secondario falliscono.   
In alternativa, è possibile specificare la percentuale come [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths) per una coppia chiave-valore esistente nell'input di stato della *Mappa distribuita*. Questo percorso deve risolversi in un numero intero positivo compreso tra 0 e 100 in fase di esecuzione. Il percorso di riferimento viene specificato nel `ToleratedFailurePercentagePath` sottocampo.  
Ad esempio, con il seguente input:  

```
{
  "percentage": 15
}
```
È possibile specificare la percentuale utilizzando un percorso di riferimento a tale input come segue:  

```
{
  ...
  "Map": {
    "Type": "Map",
    ...
    "ToleratedFailurePercentagePath": "$.percentage"
    ...
  }
}
```
È possibile specificare uno `ToleratedFailurePercentage` o entrambi`ToleratedFailurePercentagePath`, ma non entrambi nella definizione *dello stato della Mappa Distribuita*.

**Numero di fallimenti tollerati**  
Definisce il numero di elementi non riusciti da tollerare. Il Map Run fallisce se questo valore viene superato.   
In alternativa, puoi specificare il conteggio come [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths) per una coppia chiave-valore esistente nell'input di stato della *Mappa distribuita*. Questo percorso deve risolversi in un numero intero positivo in fase di esecuzione. Il percorso di riferimento viene specificato nel `ToleratedFailureCountPath` sottocampo.  
Ad esempio, con il seguente input:  

```
{
  "count": 10
}
```
È possibile specificare il numero utilizzando un percorso di riferimento a tale input come segue:  

```
{
  ...
  "Map": {
    "Type": "Map",
    ...
    "ToleratedFailureCountPath": "$.count"
    ...
  }
}
```
È possibile specificare uno `ToleratedFailureCount` o entrambi`ToleratedFailureCountPath`, ma non entrambi nella definizione *dello stato della Mappa Distribuita*.

## Scopri di più sulle mappe distribuite
<a name="dist-map-next-steps"></a>

Per continuare a saperne di più sullo *stato delle mappe distribuite*, consulta le seguenti risorse:
+ 

**Elaborazione di input e output**  
Per configurare l'input ricevuto da *uno stato della Mappa Distribuita* e l'output che genera, Step Functions fornisce i seguenti campi:
  + [ItemReader (Mappa)](input-output-itemreader.md)
  + [ItemsPath ( JSONPath Solo mappa)](input-output-itemspath.md)
  + [ItemSelector (Mappa)](input-output-itemselector.md)
  + [ItemBatcher (Mappa)](input-output-itembatcher.md)
  + [ResultWriter (Mappa)](input-output-resultwriter.md)
  + [Come Step Functions analizza i file CSV di input](example-csv-parse-dist-map.md)

  Oltre a questi campi, Step Functions offre anche la possibilità di definire una soglia di errore tollerata per Distributed Map. Questo valore consente di specificare il numero massimo o la percentuale di elementi non riusciti come soglia di errore per una [Map Run](concepts-examine-map-run.md). Per ulteriori informazioni sulla configurazione della soglia di errore tollerata, vedere. [Impostazione delle soglie di errore per gli stati della mappa distribuita in Step Functions](#maprun-fail-threshold)
+ 

**Utilizzo dello stato della mappa distribuita**  
Fai riferimento ai seguenti tutorial e progetti di esempio per iniziare a utilizzare *Distributed Map state*.
  + [Copia CSV su larga scala utilizzando Distributed Map](tutorial-map-distributed.md)
  + [Elaborazione di dati batch con una funzione Lambda in Step Functions](tutorial-itembatcher-param-task.md)
  + [Elaborazione di singoli articoli con una funzione Lambda in Step Functions](tutorial-itembatcher-single-item-process.md)
  + [Progetto di esempio: elaborazione di un file CSV con Distributed Map](sample-dist-map-csv-process.md)
  + [Progetto di esempio: elabora i dati in un bucket Amazon S3 con Distributed Map](sample-dist-map-s3data-process.md)
+ 

**Esamina l'esecuzione dello stato della mappa distribuita**  
La console Step Functions fornisce una pagina *Map Run Details*, che mostra tutte le informazioni relative all'esecuzione *dello stato di Distributed Map*. Per informazioni su come esaminare le informazioni visualizzate in questa pagina, vedere[Visualizzazione delle corse delle mappe](concepts-examine-map-run.md).