Este tópico descreve como usar a transformação AWS::ServiceCatalog
para fazer referência a saídas de um produto provisionado do AWS Service Catalog existente em seu modelo do CloudFormation.
Uso
Para usar a transformação AWS::ServiceCatalog
, é necessário declará-la no nível superior do seu modelo do CloudFormation. Não é possível usar AWS::ServiceCatalog
como uma transformação incorporada em nenhuma outra seção de modelo.
Quando for necessário ter um valor de saída, você fornece o nome do produto provisionado e o nome da chave de saída.
É possível fazer referência a vários produtos provisionados e nomes de chaves em seu modelo, no máximo 20 por modelo. Durante o provisionamento, a transformação recupera o valor de cada produto e chave provisionados que foram indicados na referência, substituindo o valor de saída em seu modelo do CloudFormation.
A declaração deve usar a string literal AWS::ServiceCatalog
como seu valor. Você não pode usar um parâmetro ou uma função para especificar um valor de transformação.
Sintaxe
Para declarar essa transformação no modelo do CloudFormation, use a seguinte sintaxe:
JSON
{
"Transform":"AWS::ServiceCatalog",
"Resources":{
...
}
}
YAML
Transform: AWS::ServiceCatalog
Resources:
...
A transformação AWS::ServiceCatalog
é uma declaração independente sem parâmetros adicionais.
Exemplos
Os exemplos a seguir mostram como é possível fazer referência a saídas de um produto provisionado existente do Service Catalog em um modelo do CloudFormation.
Nestes exemplos, SampleProvisionedProduct
é um produto provisionado criado anteriormente. SampleOutputKey
é uma chave de saída desse produto provisionado.
JSON
Este exemplo é uma versão funcional.
Versões de modelo que não envolverem o valor como uma string literal falharão.
{
"AWSTemplateFormatVersion":"2010-09-09",
"Transform":"AWS::ServiceCatalog",
"Resources":{
"ExampleParameter":{
"Type":"AWS::SSM::Parameter",
"Properties":{
"Type":"String",
"Value":"[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]"
}
}
}
}
YAML
Os exemplos 1–4 são modelos válidos. Nos exemplos 1 e 2, a transformação e o valor são strings literais.
O exemplo 5 não é um modelo válido. O valor deve ser envolvido em uma string '
, "
ou >-
. Caso contrário, o usuário receberá um erro.
// Example 1
AWSTemplateFormatVersion: 2010-09-09
Transform: 'AWS::ServiceCatalog'
Resources:
ExampleParameter:
Type: AWS::SSM::Parameter
Properties:
Type: String
Value: '[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]'
// Example 2
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter:
Type: 'AWS::SSM::Parameter'
Properties:
Type: String
Value: '[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]'
// Example 3
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter:
Type: 'AWS::SSM::Parameter'
Properties:
Type: String
Value: "[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]"
// Example 4
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter:
Type: AWS::SSM::Parameter
Properties:
Type: String
Value: >-
[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]
// Example 5
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter2:
Type: AWS::SSM::Parameter
Properties:
Type: String
Value: [[servicecatalog:provisionedproduct:SSMProductProvisionedProduct:SampleOutputKey]]