Sintassi Outputs del modello CloudFormation - AWS CloudFormation

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

Sintassi Outputs del modello CloudFormation

La sezione Outputs facoltativa dichiara i valori di output per lo stack. Questi valori di output possono essere utilizzati in vari modi:

  • Acquisizione di informazioni importanti sulle risorse: un output è un modo pratico di acquisire informazioni importanti sulle risorse. Ad esempio, è puoi restituire l’output di un nome di bucket S3 per uno stack per semplificare la ricerca del bucket. Puoi visualizzare i valori di output nella scheda Output della console CloudFormation o utilizzando il comando CLI describe-stacks.

  • Riferimenti tra stack: puoi importare valori di output in altri stack per creare riferimenti tra stack. Questa funzione è utile quando devi condividere risorse o configurazioni su più stack.

Importante

CloudFormation non omette né offusca alcuna informazione inclusa nella sezione Outputs. Ti consigliamo vivamente di non utilizzare questa sezione per generare informazioni riservate, ad esempio password o segreti.

I valori di output sono disponibili al termine dell’operazione dello stack. I valori di output dello stack non sono disponibili quando lo stato dello stesso è in uno degli stati IN_PROGRESS. Si sconsiglia di stabilire dipendenze tra un runtime del servizio e il valore di output dello stack, poiché i valori di output potrebbero non essere sempre disponibili.

Sintassi

La sezione Outputs è composta dal nome di chiave Outputs. Puoi dichiarare un massimo di 200 output in un modello.

L’esempio seguente mostra la struttura della sezione Outputs.

JSON

Usa le parentesi graffe per racchiudere tutte le dichiarazioni degli output. Delimita più output con virgole.

"Outputs" : { "OutputLogicalID" : { "Description" : "Information about the value", "Value" : "Value to return", "Export" : { "Name" : "Name of resource to export" } } }

YAML

Outputs: OutputLogicalID: Description: Information about the value Value: Value to return Export: Name: Name of resource to export

Campi di output

La sezione Outputs può includere i seguenti campi.

ID logico (chiamato anche nome logico)

Identificatore per l’output corrente. L’ID logico deve essere un valore alfanumerico (a–z, A–Z, 0–9) univoco all’interno del modello.

Description (facoltativo)

Tipo String che descrive il valore di output. Il valore della dichiarazione della descrizione deve essere una stringa letterale con una lunghezza compresa tra 0 e 1024 byte. Per specificare la descrizione non è possibile utilizzare un parametro o una funzione.

Value (obbligatorio)

Valore della proprietà restituita dal comando describe-stacks. Il valore di un output può includere valori letterali, riferimenti a parametri, pseudo parametri, un valore di mappatura o funzioni intrinseche.

Export (facoltativo)

Nome dell’output della risorsa da esportare in un riferimento tra stack.

Puoi utilizzare le funzioni intrinseche per personalizzare il valore Name di un’esportazione.

Per ulteriori informazioni, consulta Ottieni gli output esportati da uno stack di CloudFormation distribuito.

Per associare una condizione a un output, definisci la condizione nella sezione Conditions del modello.

Esempi

Negli esempi seguenti viene illustrato il funzionamento dell’output dello stack.

Output dello stack

In questo esempio, l’output denominato BackupLoadBalancerDNSName restituisce il nome DNS della risorsa con l’ID logico BackupLoadBalancer solo quando la condizione CreateProdResources è vera. L’output denominato InstanceID restituisce l’ID dell’istanza EC2 con l’ID logico EC2Instance.

JSON

"Outputs" : { "BackupLoadBalancerDNSName" : { "Description": "The DNSName of the backup load balancer", "Value" : { "Fn::GetAtt" : [ "BackupLoadBalancer", "DNSName" ]}, "Condition" : "CreateProdResources" }, "InstanceID" : { "Description": "The Instance ID", "Value" : { "Ref" : "EC2Instance" } } }

YAML

Outputs: BackupLoadBalancerDNSName: Description: The DNSName of the backup load balancer Value: !GetAtt BackupLoadBalancer.DNSName Condition: CreateProdResources InstanceID: Description: The Instance ID Value: !Ref EC2Instance

Personalizzazione del nome di esportazione con l’utilizzo di Fn::Sub

In questo esempio, l’output denominato StackVPC restituisce l’ID di un VPC, quindi esporta il valore dei riferimenti tra stack con il nome VPCID aggiunto alla fine del nome dello stack.

JSON

"Outputs" : { "StackVPC" : { "Description" : "The ID of the VPC", "Value" : { "Ref" : "MyVPC" }, "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-VPCID" } } } }

YAML

Outputs: StackVPC: Description: The ID of the VPC Value: !Ref MyVPC Export: Name: !Sub "${AWS::StackName}-VPCID"

Per ulteriori informazioni sulla funzione Fn::Sub, consulta Fn::Sub.

Personalizzazione del nome di esportazione con l’utilizzo di Fn::Join

Puoi anche utilizzare la funzione Fn::Join per creare valori in base a parametri, attributi delle risorse e altre stringhe.

Gli esempi seguenti utilizzano la funzione Fn::Join per personalizzare il nome di esportazione anziché la funzione Fn::Sub. La funzione Fn::Join di esempio concatena il nome dello stack con il nome VPCID utilizzando i due punti come separatore.

JSON

"Outputs" : { "StackVPC" : { "Description" : "The ID of the VPC", "Value" : { "Ref" : "MyVPC" }, "Export" : { "Name" : { "Fn::Join" : [ ":", [ { "Ref" : "AWS::StackName" }, "VPCID" ] ] } } } }

YAML

Outputs: StackVPC: Description: The ID of the VPC Value: !Ref MyVPC Export: Name: !Join [ ":", [ !Ref "AWS::StackName", VPCID ] ]

Per ulteriori informazioni sulla funzione Fn::Join, consulta Fn::Join.

Restituzione di un URL costruito utilizzando Fn::Join

Nell’esempio seguente, per un modello che crea un sito WordPress, InstallURL è la stringa restituita da una chiamata della funzione Fn::Join che concatena http://, il nome DNS della risorsa ElasticLoadBalancer e /wp-admin/install.php. Il valore di output dovrebbe essere simile al seguente:

http://mywptests-elasticl-1gb51l6sl8y5v-206169572.aws-region.elb.amazonaws.com/wp-admin/install.php

JSON

{ "Outputs": { "InstallURL": { "Value": { "Fn::Join": [ "", [ "http://", { "Fn::GetAtt": [ "ElasticLoadBalancer", "DNSName" ] }, "/wp-admin/install.php" ] ] }, "Description": "Installation URL of the WordPress website" } } }

YAML

Outputs: InstallURL: Value: !Join - '' - - 'http://' - !GetAtt - ElasticLoadBalancer - DNSName - /wp-admin/install.php Description: Installation URL of the WordPress website

Per ulteriori informazioni sulla funzione Fn::Join, consulta Fn::Join.