Purtroppo i miei esperimenti sono d'accordo con la tua conclusione Graeme. Ho lottato con questo per un po 'di tempo, ma non ho trovato un modo per calcolare una stringa tramite Fn :: Join e tenerlo per più tardi nel modello.
Posso condividere con te un tipico esempio?
A partire dal 18.09.2014, il modo più sofisticato di memorizzare un valore di stringa per il riutilizzo nella sezione Risorse sarebbe tramite una mappatura (di secondo livello). Meglio ancora, posso pre-calcolare una condizione e determinare se usare la stringa o meno. Ma sfortunatamente la memorizzazione di una stringa non funziona.
Ecco una strofa esemplificativa di tale Mappatura ...
"LoadBalancerBucketMap": {
"BucketName": {
"string": {
"Fn::Join": [
"-",
[
"mylb",
{
"Ref": "Environment"
},
"logs"
]
]
}
}
},
Ed ecco un'espressione di accesso ad essa in una risorsa
"S3BucketName": {
"Fn::FindInMap": [
"LoadBalancerBucketMap",
"BucketName",
"string"
}
In questo esempio, Environment è un parametro stringa letterale con un valore predefinito conveniente. Questo è un chiaro esempio di come creare e riutilizzare una stringa. Ma ecco cosa dice il processore CloudFormation ...
Errore di convalida modello: errore formato modello: ogni attributo Mapping deve essere una stringa o un elenco.
Quindi condivido la tua frustrazione per il fatto che non sembra esserci un modo in un modello per fornire l'effetto di una variabile stringa temporanea.
... Per quanto posso vedere. Ma la risposta che hai ricevuto inizialmente diceva il contrario (anche se senza un esempio).
Quindi, se qualcuno ha una soluzione alternativa di esempio, allora potrebbe condividere?