Gerador de IaC e propriedades somente gravação - AWS CloudFormation

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:

  1. 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 aviso Type de MUTUALLY_EXCLUSIVE_PROPERTIES para as propriedades incluídas.

  2. A propriedade somente gravação pode ser qualquer um de vários tipos de dados. Por exemplo, a propriedade Body de AWS::ApiGateway::RestApi pode ser um object ou um string. Quando esse é o caso, o gerador de IaC define um aviso Type de MUTUALLY_EXCLUSIVE_TYPES e inclui a propriedade no modelo gerado usando o tipo de string.

  3. 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 aviso Type de UNSUPPORTED_PROPERTIES.

  4. 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 de UNSUPPORTED_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:

Aviso do console do gerador de IaC sobre propriedades somente gravação no modelo gerado

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.

Aviso detalhados do console do gerador de IaC sobre propriedades somente gravação no modelo gerado

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.