

Questa è la nuova *Guida di riferimento ai modelli CloudFormation *. Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la [Guida AWS CloudFormation per l'utente](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

# `Fn::FindInMap enhancements`
<a name="intrinsic-function-reference-findinmap-enhancements"></a>

La `AWS::LanguageExtensions` trasformazione migliora la funzionalità della funzione `Fn::FindInMap` intrinseca nei modelli. CloudFormation 

La `Fn::FindInMap` funzione viene utilizzata per recuperare un valore da una mappatura definita nella sezione di un modello. `Mappings` CloudFormation Tuttavia, la funzione `Fn::FindInMap` standard presenta delle limitazioni, come l’impossibilità di gestire le mappature mancanti o di utilizzare una funzione `Fn::FindInMap` con alcune funzioni intrinseche incorporate al suo interno.

La trasformazione `AWS::LanguageExtensions` risolve queste limitazioni introducendo i seguenti miglioramenti:
+ **Supporto per valori predefinito**: puoi specificare un valore predefinito da restituire se non viene trovata una mappatura.
+ **Supporto per funzione intrinseca**: puoi inoltre utilizzare una gamma più ampia di funzioni intrinseche per definire i campi di `Fn::FindInMap` rispetto alla funzione standard `Fn::FindInMap`.

## Dichiarazione
<a name="intrinsic-function-reference-findinmap-enhancements-declaration"></a>

### JSON
<a name="intrinsic-function-reference-findinmap-enhancements-syntax.json"></a>

```
{ "Fn::FindInMap" : [
    "{{MapName}}",
    "{{TopLevelKey}}",
    "{{SecondLevelKey}}",
    {"DefaultValue": "{{DefaultValue}}"}
  ]
}
```

### YAML
<a name="intrinsic-function-reference-findinmap-enhancements-syntax.yaml"></a>

Sintassi per il nome completo della funzione:

```
Fn::FindInMap:
  {{- MapName}}
  {{- TopLevelKey}}
  {{- SecondLevelKey}}
  - DefaultValue: {{DefaultValue}}
```

Sintassi per la forma breve:

```
!FindInMap
  {{- MapName}}
  {{- TopLevelKey}}
  {{- SecondLevelKey}}
  - DefaultValue: {{DefaultValue}}
```

## Parameters
<a name="intrinsic-function-reference-findinmap-enhancements-parameters"></a>

DefaultValue  <a name="DefaultValue"></a>
Il valore che `Fn::FindInMap` si risolverà se non `TopLevelKey` and/or `SecondLevelKey` può essere trovato dalla `MapName` mappa. Questo campo è facoltativo.

Tutti i parametri `MapName`, `TopLevelKey`, `SecondLevelKey` e `DefaultValue` possono essere una funzione intrinseca purché possa risolversi in un valore valido durante la trasformazione.

## Esempi
<a name="w2aac28c16c20c15"></a>

Gli esempi seguenti mostrano come definire i campi di `Fn::FindInMap` quando si aggiunge la trasformazione `AWS::LanguageExtensions`.

### Utilizzo di un valore predefinito
<a name="intrinsic-function-reference-findinmap-enhancements-example"></a>

Di seguito è riportato un esempio di utilizzo di un valore predefinito nella funzione `Fn::FindInMap`.

#### JSON
<a name="intrinsic-function-reference-findinmap-default-value-example.json"></a>

```
{
  //...
    "Transform": "AWS::LanguageExtensions",
    //...
    "Fn::FindInMap": [
      "RegionMap",
      { "Ref": "AWS::Region" },
      "InstanceType",
      { "DefaultValue": "t3.micro" }
    ]
  //...
}
```

#### YAML
<a name="intrinsic-function-reference-findinmap-default-value-example.yaml"></a>

```
Transform: 'AWS::LanguageExtensions'
#...
    !FindInMap 
        - 'RegionMap'
        - !Ref 'AWS::Region'
        - 'InstanceType'
        - DefaultValue: t3.micro
#...
```

#### Utilizzare le funzioni intrinseche per definire la chiave di primo livello
<a name="intrinsic-function-reference-findinmap-enhancements-example"></a>

Di seguito è riportato un esempio di utilizzo di una funzione `Fn::FindInMap` con le funzioni intrinseche `Fn::Select` e `Fn::Split` incorporate al suo interno per definire la chiave di primo livello.

##### JSON
<a name="intrinsic-function-reference-findinmap-enhancement-example.json"></a>

```
{
  //...
  "Transform": "AWS::LanguageExtensions",
  //...
      "Fn::FindInMap": [
        "MyMap",
        {
          "Fn::Select": [
            0,
            {
              "Fn::Split": [
                "|",
                { "Ref": "InputKeys" }
              ]
            }
          ]
        },
        "SecondKey"
      ]
//...
}
```

##### YAML
<a name="intrinsic-function-reference-findinmap-enhance-example.yaml"></a>

```
Transform: 'AWS::LanguageExtensions'
#...
    !FindInMap: [MyMap, !Select [0, !Split [|, !Ref InputKeys]], SecondKey]
#...
```

## Funzioni supportate
<a name="intrinsic-function-reference-findinmap-enhancements-supported-functions"></a>

Puoi utilizzare le seguenti funzioni nei parametri dei miglioramenti di `Fn::FindInMap:`:
+ ``Fn::FindInMap``
+ ``Fn::Join``
+ ``Fn::Sub``
+ ``Fn::If``
+ ``Fn::Select``
+ ``Fn::Length``
+ ``Fn::ToJsonString``
+ ``Fn::Split`` - A meno che non venga utilizzato per il valore predefinito, `Fn::Split` deve essere utilizzato assieme a funzioni intrinseche che producono una stringa, ad esempio ``Fn::Join`` o ``Fn::Select``.
+ ``Ref``

## Risorse correlate
<a name="w2aac28c16c20c19"></a>

Per ulteriori informazioni ed esempi che mostrano come utilizzare la funzione intrinseca `Fn::FindInMap`, consulta [`Fn::FindInMap`](intrinsic-function-reference-findinmap.md).

Per ulteriori informazioni sulla trasformazione `AWS::LanguageExtensions`, consulta [Trasformazione `AWS::LanguageExtensions`](transform-aws-languageextensions.md).