A função intrínseca Fn::GetStackOutput consulta a saída de uma pilha.
Declaração
-
JSON
{ "Fn::GetStackOutput": [ Stack, OutputName, RegionId ] } -
YAML
-
Sintaxe do nome completo da função:
Fn::GetStackOutput: Stack, OutputName, RegionId -
Sintaxe da forma abreviada:
!GetStackOutput [Stack, OutputName, RegionId]
-
Parâmetros
Stack: Obrigatório. Nome ou ID da pilha. O valor deve ser do tipo String.OutputName: Obrigatório. Nome de uma saída definida na seçãoOutputsda pilha. O valor deve ser do tipo String.RegionId: Opcional. ID da região da pilha referenciada. O valor deve ser do tipo String. O padrão é a região da pilha onde a função é chamada.
Valor de retorno
Retorna o valor da saída identificada por OutputName. O tipo corresponde ao tipo do valor de saída.
O sistema retorna uma string vazia nos seguintes casos:
Um parâmetro obrigatório está vazio.
A pilha não existe ou foi excluída.
A pilha está em execução ou falhou na exclusão.
A saída especificada não existe na pilha.
Limites
Há suporte apenas para referências unidirecionais. A pilha A pode referenciar a saída da pilha B, e a pilha B pode referenciar a saída da pilha C. No entanto, a pilha B não pode referenciar a saída da pilha A (pois isso criaria uma referência circular), e uma pilha não pode referenciar sua própria saída (por exemplo, não há suporte para A→A).
A profundidade máxima de referência é 3. Há suporte para a cadeia A→B→C, mas não para A→B→C→D.
A, B, C, D e E representam o nome de uma saída em uma pilha. A profundidade máxima de referência indica o limite máximo de aninhamento de OutputName na função Fn::GetStackOutput.
Modelos de exemplo
O exemplo a seguir mostra três pilhas — stack_a, stack_b e stack_c — em que a saída de cada uma depende da saída da anterior. A saída final da stack_c resulta em stack_depth_3, valor originalmente definido na stack_a.
-
stack_a
ROSTemplateFormatVersion: '2015-09-01' Outputs: OutputValueA: Value: 'stack_depth_3' -
stack_b
ROSTemplateFormatVersion: '2015-09-01' Outputs: OutputValueB: Value: Fn::GetStackOutPut: - stack_a_id - OutputValueA -
stack_c
ROSTemplateFormatVersion: '2015-09-01' Outputs: OutputValueC: Value: Fn::GetStackOutPut: - stack_b_id - OutputValueB
Exemplos
!GetStackOutput [4a6c9851-3b0f-4f5f-b4ca-a14bf691****, InstanceId]