Gerador de IaC e propriedades somente gravação
As propriedades somente gravação são propriedades de recursos que podem ser gravadas, mas não podem ser lidas pelo AWS CloudFormation. (Um exemplo seria uma senha de banco de dados.) Isso causa problemas ao gerar modelos baseados em recursos existentes. Em geral, as propriedades somente gravação são convertidas em parâmetros no modelo gerado. Isso permite a você inserir as propriedades como valores de parâmetros durante as operações de importação. No entanto, as propriedades somente gravação não podem ser convertidas em parâmetros nos seguintes casos:
-
Há vários conjuntos de propriedades exclusivos, pelo menos alguns dos quais são somente gravação. O gerador de IaC não pode determinar qual conjunto de propriedades exclusivas foi aplicado ao recurso durante a criação. Por exemplo, você pode fornecer o código para um
AWS::Lambda::Function
usando um desses conjuntos de propriedades.-
Code/S3Bucket
,Code/S3Key
e, opcionalmente,Code/S3ObjectVersion
-
Code/ImageUri
-
Code/ZipFile
Todas essas propriedades são somente gravação. O gerador de IaC seleciona um dos conjuntos de propriedades exclusivos e os adiciona ao modelo gerado. Parâmetros são adicionados para cada uma das propriedades somente gravação. Os nomes dos parâmetros incluem
OneOf
e as descrições dos parâmetros indicam que a propriedade correspondente pode ser substituída por outras propriedades exclusivas. O gerador de IaC define um avisoType
deMUTUALLY_EXCLUSIVE_PROPERTIES
para as propriedades incluídas. -
-
A propriedade somente gravação pode ser qualquer um de vários tipos de dados. Por exemplo, a propriedade
Body
deAWS::ApiGateway::RestApi
pode ser umobject
ou umstring
. Quando esse é o caso, o gerador de IaC define um avisoType
deMUTUALLY_EXCLUSIVE_TYPES
e inclui a propriedade no modelo gerado usando o tipo destring
. -
A propriedade somente gravação tem um tipo de
array
. Os parâmetros só podem ser valores escalares. Portanto, não é possível adicionar um parâmetro ao modelo para matrizes. Quando esse é o caso, o gerador de IaC não inclui a propriedade no modelo gerado e define um avisoType
deUNSUPPORTED_PROPERTIES
. -
A propriedade somente gravação é opcional. O gerador de IaC não consegue detectar se a propriedade somente gravação já foi usada ao configurar o recurso. Nesse caso, o gerador de IaC não inclui a propriedade no modelo gerado e define um aviso
Type
deUNSUPPORTED_PROPERTIES
.
Quando o modelo gerado inclui recursos com propriedades somente gravação, o console do gerador de IaC exibe um aviso com um resumo dos tipos de problemas. Por exemplo:
Você pode escolher Visualizar detalhes do aviso para ver mais detalhes. Os recursos com propriedades somente gravação são identificados pelo ID lógico usado no modelo gerado e no tipo de recurso.
Use a lista de avisos para identificar recursos com propriedades somente gravação e examine cada recurso para determinar quais alterações (se houver) precisam ser feitas no modelo gerado. Você pode baixar o modelo gerado escolhendo o botão Baixar. Depois que as alterações forem feitas, você poderá escolher o botão Importar modelo editado para continuar.
Importante
No momento, a documentação do Referência de tipos de propriedades e recursos da AWS não indica se uma propriedade é somente gravação ou se ela oferece suporte a vários tipos. É necessário examinar os avisos retornados pelo console do gerador de IaC ou pelo esquema do provedor de recursos para determinar quais propriedades são somente gravação.
Para obter mais informações sobre o esquema do provedor de recursos, consulte Esquema do provedor de recursos no Guia do usuário da interface de linha de comando do CloudFormation. Para baixar os esquemas do provedor de recursos, consulte Esquemas do provedor de recursos do CloudFormation.