

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

# Trasformazione `AWS::LanguageExtensions`
<a name="transform-aws-languageextensions"></a>

Questo argomento descrive come utilizzare la trasformazione `AWS::LanguageExtensions` per abilitare funzioni e funzionalità aggiuntive che non sono disponibili per impostazione predefinita. 

`AWS::LanguageExtensions`È una CloudFormation macro che, quando viene referenziata nel modello di stack, aggiorna qualsiasi funzione intrinseca definita dalla trasformazione al suo valore risolto all'interno del modello quando si crea o si aggiorna uno stack utilizzando un set di modifiche. 

Includendo questa trasformazione nel CloudFormation modello, è possibile accedere a funzionalità aggiuntive, ad esempio che consentono operazioni più avanzate come `Fn::ForEach` l'iterazione. Puoi anche utilizzare le funzioni intrinseche in luoghi in cui in genere non sono consentite, ad esempio nelle funzioni `Ref` e `Fn::GetAtt`.

## Utilizzo
<a name="aws-languageextensions-usage"></a>

Per utilizzare la `AWS::LanguageExtensions` trasformazione, è necessario dichiararla al livello più alto del CloudFormation modello. Non è possibile utilizzare `AWS::LanguageExtensions` come trasformazione incorporata in qualsiasi altra sezione del modello.

La dichiarazione deve utilizzare la stringa letterale `AWS::LanguageExtensions` come valore. Non è possibile utilizzare un parametro o una funzione per specificare un valore di trasformazione.

### Sintassi
<a name="aws-languageextensions-syntax"></a>

Per dichiarare questa trasformazione nel CloudFormation modello, utilizzate la seguente sintassi:

### JSON
<a name="aws-languageextensions-syntax.json"></a>

```
{
  "Transform":"AWS::LanguageExtensions",
  "Resources":{
    ...
  }
}
```

### YAML
<a name="aws-languageextensions-syntax.yaml"></a>

```
Transform: AWS::LanguageExtensions
Resources:
  ...
```

La trasformazione `AWS::LanguageExtensions` è una dichiarazione autonoma senza parametri aggiuntivi.

## Supporto per funzioni aggiuntive
<a name="aws-languageextensions-supported-functions"></a>

L’operazione di trasformazione `AWS::LanguageExtensions` supporta le seguenti funzioni aggiuntive:
+ [`Fn::ForEach`](intrinsic-function-reference-foreach.md)
+ [`Fn::Length`](intrinsic-function-reference-length.md)
+ [`Fn::ToJsonString`](intrinsic-function-reference-ToJsonString.md)

## Considerazioni
<a name="aws-languageextensions-considerations"></a>

Quando utilizzi l’operazione transform di `AWS::LanguageExtensions`, tieni presente le considerazioni riportate di seguito:
+ Quando aggiorni uno stack che utilizza la `AWS::LanguageExtensions` trasformazione, ti consigliamo di non utilizzare l'opzione Usa **modello esistente** nella CloudFormation console o l'opzione equivalente della riga di comando. `--use-previous-template` La trasformazione `AWS::LanguageExtensions` risolve i parametri in valori letterali durante l’elaborazione. Quando si utilizza`--use-previous-template`, CloudFormation utilizza questo modello elaborato con i vecchi valori letterali, impedendo l'applicazione di nuovi valori dei parametri e degli aggiornamenti dei parametri di Systems Manager. Invece, fornisce il modello originale per garantire che i parametri vengano risolti nuovamente con i valori attuali.
+ La sintassi YAML in forma abbreviata non è supportata all’interno di un modello per le funzioni intrinseche che sono disponibili solo nella trasformazione `AWS::LanguageExtensions`. Utilizza riferimenti espliciti a queste funzioni. Ad esempio, utilizza `Fn::Length` anziché `!Length`.
+ La AWS SAM CLI attualmente non supporta la funzione `Fn::ForEach` intrinseca della trasformazione. `AWS::LanguageExtensions`
+ Se utilizzi più trasformazioni, utilizza un formato elenco. Se utilizzi macro personalizzate, inserisci le trasformazioni AWS fornite dopo le macro personalizzate. Se utilizzi entrambe le operazioni di trasformazione `AWS::LanguageExtensions` e `AWS::Serverless`, l’operazione transform di `AWS::LanguageExtensions` deve essere posizionata prima della trasformazione `AWS::Serverless` nell’elenco.
+ Le funzioni e gli attributi forniti dall’operazione transform di `AWS::LanguageExtensions` sono supportati solo nelle sezioni `Resources`, `Conditions` e `Outputs` del modello.

## Esempi
<a name="aws-languageextensions-examples"></a>

L’esempio seguente mostra come utilizzare l’operazione di trasformazione `AWS::LanguageExtensions` per utilizzare la funzione intrinseca `Fn::Length` definita dalla trasformazione.

### JSON
<a name="aws-languageextensions-example.json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Transform": "AWS::LanguageExtensions",
    "Parameters": {
        "QueueList": {
            "Type": "CommaDelimitedList"
        },
        "QueueNameParam": {
            "Description": "Name for your SQS queue",
            "Type": "String"
        }
    },
    "Resources": {
        "Queue": {
            "Type": "AWS::SQS::Queue",
            "Properties": {
                "QueueName": {
                    "Ref": "QueueNameParam"
                },
                "DelaySeconds": {
                    "Fn::Length": {
                        "Ref": "QueueList"
                    }
                }
            }
        }
    }
}
```

### YAML
<a name="aws-languageextensions-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::LanguageExtensions
Parameters:
  QueueList:
    Type: CommaDelimitedList
  QueueNameParam:
    Description: Name for your SQS queue
    Type: String
Resources:
  Queue:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: !Ref QueueNameParam
      DelaySeconds:
        'Fn::Length': !Ref QueueList
```

## Risorse correlate
<a name="aws-languageextensions-related-resources"></a>

Per altri esempi, consulta gli argomenti seguenti.
+ [`Fn::ForEach`](intrinsic-function-reference-foreach.md)
+ [`Fn::Length`](intrinsic-function-reference-length.md)
+ [`Fn::ToJsonString`](intrinsic-function-reference-ToJsonString.md)
+ [`Ref`](intrinsic-function-reference-ref.md)
+ [`Fn::GetAtt`](intrinsic-function-reference-getatt.md)
+ [`Fn::FindInMap enhancements`](intrinsic-function-reference-findinmap-enhancements.md)

*Per informazioni generali sull'uso delle macro, consulta [Eseguire l'elaborazione personalizzata su CloudFormation modelli con macro di modello](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) nella Guida per l'utente.AWS CloudFormation *