

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

# Ottieni gli output esportati da uno stack distribuito CloudFormation
<a name="using-cfn-stack-exports"></a>

Se disponi di più stack nella stessa regione Account AWS e nella stessa regione, potresti voler condividere informazioni tra di loro. Questo è utile quando uno stack deve utilizzare le risorse create da un altro stack.

Ad esempio, potresti avere uno stack che crea risorse di rete, come sottoreti e gruppi di sicurezza, per i tuoi server web. Gli altri stack che creano i server Web effettivi possono quindi utilizzare le risorse di rete create dal primo stack. Non è necessario codificare le risorse IDs nel modello dello stack o passarle IDs come parametri di input.

Per condividere informazioni tra stack, *esporta* i valori di output da uno stack e *importali* in un altro stack. Come funziona:

1. Nel modello del primo stack (ad esempio, lo stack di rete), definisci determinati valori da esportare utilizzando il campo `Export` nella sezione `Outputs`. Per ulteriori informazioni, consulta [CloudFormation Outputssintassi del modello](outputs-section-structure.md).

1. Quando crei o aggiorni quello stack, CloudFormation esporta i valori di output, rendendoli disponibili ad altri stack nello stesso stack e nella stessa Account AWS regione.

1. Nel modello dell’altro stack, utilizza la funzione [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html) per importare i valori esportati dal primo stack.

1. Quando crei o aggiorni il secondo stack (ad esempio, lo stack del server Web), recupera CloudFormation automaticamente i valori esportati dal primo stack e li utilizza.

Per una procedura guidata e modelli di esempio, consulta [Fai riferimento agli output di risorse in un altro stack CloudFormation](walkthrough-crossstackref.md).

## Esportazione dei valori di output di uno stack e utilizzo di stack nidificati
<a name="output-vs-nested"></a>

Uno stack nidificato è uno stack creato all’interno di un altro stack utilizzando la risorsa `AWS::CloudFormation::Stack`. Con gli stack nidificati, puoi distribuire e gestire tutte le risorse da un singolo stack. Puoi utilizzare output da uno stack nel gruppo di stack nidificati come input per un altro stack del gruppo. Ciò è diverso dall'esportazione di valori.

Se desideri isolare la condivisione delle informazioni all'interno di un gruppo di stack nidificati, è consigliabile utilizzare stack nidificati. Per condividere le informazioni con altri stack (non solo nel gruppo di stack nidificati), esporta i valori. Ad esempio, puoi creare un singolo stack con una sottorete ed esportarne l'ID. Altri stack possono utilizzare questa sottorete importandone l’ID. Non è necessario che ogni stack crei una sottorete propria. Finché gli stack importano l'ID della sottorete, non è possibile modificarlo o eliminarlo.

Per ulteriori informazioni sugli stack nidificati, consulta [Dividi un modello in pezzi riutilizzabili usando stack nidificati](using-cfn-nested-stacks.md).

## Considerazioni
<a name="using-cfn-stack-exports-considerations"></a>

Ai riferimenti tra stack si applicano le seguenti limitazioni:
+ Per ognuno Account AWS, i `Export` nomi devono essere univoci all'interno di una regione.
+ Non puoi creare riferimenti tra stack tra Regioni. Puoi utilizzare la funzione intrinseca `Fn::ImportValue` per importare solo valori che sono stati esportati all’interno della stessa Regione.
+ Per gli output, il valore della proprietà `Name` di un `Export` non può utilizzare le funzioni `Ref` o `GetAtt` che dipendono da una risorsa.

  Allo stesso modo, la funzione `ImportValue` non può includere le funzioni `Ref` o `GetAtt` che dipendono da una risorsa.
+ Quando un altro stack importa un valore di output, non puoi eliminare lo stack che esporta il valore di output o modificare il valore di output esportato. Tutte le importazioni devono essere eliminate prima di poter eliminare lo stack di esportazione o di modificare il valore di output.

## Elencazione dei valori di output esportati
<a name="using-cfn-stack-exports-listing"></a>

Se devi visualizzare i valori di output esportati dagli stack, utilizza uno dei metodi seguenti:

**Per elencare i valori di output esportati (console)**

1. Apri la CloudFormation console in [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Nella barra di navigazione nella parte superiore dello schermo, scegli la Regione AWS.

1. Nel riquadro di navigazione a sinistra, scegli **Esportazioni**.

**Per elencare i valori di output esportati (AWS CLI)**  
Utilizza il seguente comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-exports.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-exports.html). Sostituisci con il tuo*us-east-1*. Regione AWS

```
aws cloudformation list-exports --region us-east-1
```

Di seguito è riportato un output di esempio.

```
{
    "Exports": [
        {
            "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800",
            "Name": "private-vpc-subnet-a",
            "Value": "subnet-07b410xmplddcfa03"
        },
        {
            "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800",
            "Name": "private-vpc-subnet-b",
            "Value": "subnet-075ed3xmplebd2fb1"
        },
        {
            "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800",
            "Name": "private-vpc-vpcid",
            "Value": "vpc-011d7xmpl100e9841"
        }
    ]
}
```

CloudFormation mostra i nomi e i valori degli output esportati per la regione corrente e lo stack da cui sono stati esportati. Per utilizzare un valore di output esportato in un modello di stack, puoi farvi riferimento utilizzando il nome di esportazione e la funzione `Fn::ImportValue`.

## Creazione di elenchi di stack che importano un valore di output esportato
<a name="using-cfn-stack-imports"></a>

Per eliminare o modificare i valori di output esportati, devi prima scoprire quali stack li stanno importando.

Per visualizzare gli stack che importano un valore di output esportato, utilizza uno dei metodi seguenti:

**Per elencare gli stack che importano un valore di output esportato (console)**

1. [Apri la CloudFormation console in /cloudformation. https://console.aws.amazon.com](https://console.aws.amazon.com/cloudformation/)

1. Nel riquadro di navigazione a sinistra, scegli **Esportazioni**.

1. Per vedere quali pile importano un determinato valore di esportazione, scegli il **nome di esportazione per quel valore di esportazione**. CloudFormation visualizza la pagina dei dettagli di esportazione, che elenca tutti gli stack che importano il valore.

**Per elencare gli stack che importano un valore di output esportato (AWS CLI)**  
Utilizza il comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-imports.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-imports.html). *us-east-1*Sostituiscilo con il tuo Regione AWS e `private-vpc-vpcid` con il nome del valore di output esportato.

```
aws cloudformation list-imports --region us-east-1 \
    --export-name private-vpc-vpcid
```

CloudFormation restituisce un elenco di pile che stanno importando il valore.

```
{
    "Imports": [
        "my-app-stack"
    ]
}
```

Una volta che sai quali stack importano un particolare valore esportato, devi modificare tali stack per rimuovere le funzioni `Fn::ImportValue` che fanno riferimento ai valori di output. Prima di poter eliminare o modificare i valori di output esportati, è necessario rimuovere tutte le importazioni che fanno riferimento a tali valori. 