Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Resolver o desvio com uma operação de importação

Modo de foco
Resolver o desvio com uma operação de importação - AWS CloudFormation

Pode haver casos em que a configuração de um recurso tenha se desviado da configuração pretendida e você queira aceitar a nova configuração como a configuração pretendida. Na maioria dos casos, você resolveria os resultados do desvio atualizando a definição de recurso no modelo de pilha com uma nova configuração e, depois, executaria uma atualização de pilha. No entanto, se a nova configuração atualizar uma propriedade de recurso que exija substituição, o recurso será recriado durante a atualização da pilha. Se desejar reter o recurso existente, você poderá usar a importação de recursos para atualizar o recurso e resolver os resultados de desvio sem substituí-lo.

Resolver o desvio de um recurso por meio de uma operação de importação consiste nas seguintes etapas básicas:

Para obter mais informações sobre importação de recursos, consulte Importe recursos da AWS para uma pilha do CloudFormation com uma importação de recursos. Para obter uma lista recursos que oferecem suporte à importação, consulte Suporte a tipos de recursos.

Neste exemplo, usamos o seguinte modelo, chamado templateToImport.json.

Example JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "GamesTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "TableName": "Games", "AttributeDefinitions": [ { "AttributeName": "key", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "key", "KeyType": "HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 1 } } } } }
Example YAML
AWSTemplateFormatVersion: 2010-09-09 Description: Import test Resources: ServiceTable: Type: 'AWS::DynamoDB::Table' Properties: TableName: Service AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH BillingMode: PROVISIONED ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 1 GamesTable: Type: 'AWS::DynamoDB::Table' Properties: TableName: Games AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH BillingMode: PROVISIONED ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 1
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "GamesTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "TableName": "Games", "AttributeDefinitions": [ { "AttributeName": "key", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "key", "KeyType": "HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 1 } } } } }

Neste exemplo, vamos supor que um usuário alterou um recurso fora do CloudFormation. Depois de executar a detecção de desvios, descobrimos que GamesTable foi modificado BillingMode para PAY_PER_REQUEST. Para obter mais informações sobre a detecção de desvios, consulte Detectar alterações de configuração não gerenciadas em pilhas e recursos com detecção de desvios.

Os resultados de desvio exibem os resultados esperados e reais no console.

Nossa pilha agora está desatualizada, nossos recursos estão ativos, mas queremos preservar a configuração de recursos pretendida. Podemos fazer isso resolvendo o desvio com uma operação de importação, sem interromper os serviços.

Resolver desvio com uma operação de importação usando o console do CloudFormation

Etapa 1. Atualizar pilha com a política de exclusão Retain

Para atualizar a pilha usando um atributo DeletionPolicy com a opção Retain
  1. Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na página Pilhas escolha a pilha com desvio.

  3. Escolha Atualizar, e, depois, selecione Substituir modelo atual no painel de detalhes da pilha.

  4. Na página Especificar modelo forneça o modelo atualizado que contém o atributo DeletionPolicy com a opção Retain usando um dos seguintes métodos:

    • Escolha Amazon S3 URL (URL do Amazon S3) e especifique o URL do modelo na caixa de texto.

    • Escolha Upload a template file (Fazer upload de um arquivo de modelo) e procure o arquivo de modelo.

    Em seguida, escolha Próximo.

  5. Revise a página Especificar detalhes da pilha e escolha Próximo.

  6. Revise a página Configurar opções de pilha e escolha Próximo.

  7. Na página Revisar nome da pilha, escolha Atualizar pilha.

Resultados: na página Eventos da sua pilha, o status é UPDATE_COMPLETE.

Para resolver o desvio com uma operação de importação, sem interromper os serviços, especifique uma Retain DeletionPolicy para os recursos que você deseja remover da pilha. Neste exemplo, adicionamos um atributo DeletionPolicy definido como Retain, ao recurso GamesTable.

Example JSON
"GamesTable": { "Type": "AWS::DynamoDB::Table", "DeletionPolicy": "Retain", "Properties": { "TableName": "Games",
Example YAML
GamesTable: Type: 'AWS::DynamoDB::Table' DeletionPolicy: Retain Properties: TableName: Games
"GamesTable": { "Type": "AWS::DynamoDB::Table", "DeletionPolicy": "Retain", "Properties": { "TableName": "Games",

Etapa 2. Remover recursos com desvio, parâmetros relacionados e saídas

Como remover recursos com desvio, parâmetros relacionados e saídas
  1. Escolha Atualizar, e, depois, selecione Substituir modelo atual no painel de detalhes da pilha.

  2. Na página Especificar modelo, forneça ao modelo atualizado seus recursos, parâmetros relacionados e saídas removidas do modelo de pilha usando um dos seguintes métodos:

    • Escolha Amazon S3 URL (URL do Amazon S3) e especifique o URL do modelo na caixa de texto.

    • Escolha Upload a template file (Fazer upload de um arquivo de modelo) e procure o arquivo de modelo.

    Em seguida, escolha Próximo.

  3. Revise a página Especificar detalhes da pilha e escolha Próximo.

  4. Revise a página Configurar opções de pilha e escolha Próximo.

  5. Na página Revisar nome da pilha, escolha Atualizar pilha.

Resultados: o ID Lógico GamesTable tem o status DELETE_SKIPPED na página Eventos da sua pilha.

Aguarde até que o CloudFormation conclua a operação de atualização da pilha. Após a conclusão da operação de atualização da pilha, remova o recurso, os parâmetros relacionados e as saídas do modelo de pilha. Depois, importe o modelo atualizado. Depois de concluir essas ações, o modelo demonstrativo agora se parece com o seguinte.

Example JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } } } }
Example YAML
AWSTemplateFormatVersion: 2010-09-09 Description: Import test Resources: ServiceTable: Type: 'AWS::DynamoDB::Table' Properties: TableName: Service AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH BillingMode: PROVISIONED ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 1
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } } } }

Etapa 3. Atualizar modelo para corresponder ao estado ativo dos seus recursos

Como atualizar o modelo para corresponder ao estado ativo dos recursos
  1. Para importar o modelo atualizado, escolha Ações da pilha e, depois, escolha Importar recursos para a pilha.

    A opção Importar recursos para a pilha no console.
  2. Leia a página Visão geral da importação para obter uma lista de itens a serem fornecidos durante esta operação, e, depois, escolha Próximo.

  3. Na páginaEspecificar modelo, forneça o modelo atualizado usando um dos seguintes métodos:

    • Escolha Amazon S3 URL (URL do Amazon S3) e especifique o URL do modelo na caixa de texto.

    • Escolha Upload a template file (Fazer upload de um arquivo de modelo) e procure o arquivo de modelo.

    Em seguida, escolha Próximo.

  4. Na página Identify resources (Identificar recursos), identifique todos os recursos de destino. Para ter mais informações, consulte Identificadores de recursos.

    1. Em Identifier property (Propriedade do identificador), escolha o tipo de identificador do recurso. Por exemplo, a propriedade TableName identifica o recurso AWS::DynamoDB::Table.

    2. Em Valor do identificador, digite o valor real da propriedade. No modelo demonstrativo, o TableName para o recurso GamesTable é Games.

    3. Escolha Próximo.

  5. Revise a página Especificar detalhes da pilha e escolha Próximo.

  6. Na página Visão geral da importação, revise os recursos que estão sendo importados e escolha Importar recursos. Isso importará o tipo de recurso AWS::DynamoDB::Table de volta para sua pilha.

Resultados: neste exemplo, resolvemos o desvio de recursos com uma operação de importação, sem interromper os serviços. É possível verificar o andamento de uma ação de importação no console do CloudFormation na guia Eventos. Os recursos importados terão o status IMPORT_COMPLETE seguido pelo status CREATE_COMPLETE com Importação de recursos concluída como o motivo do status.

Aguarde até que o CloudFormation conclua a operação de atualização da pilha. Depois que a operação de atualização da pilha for concluída, atualize seu modelo para corresponder ao estado real e com desvio de seus recursos. Por exemplo, o BillingMode será definido como PAY_PER_REQUEST e ReadCapacityUnits e WriteCapacityUnits serão definidos como 0.

Example JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "GamesTable": { "Type": "AWS::DynamoDB::Table", "DeletionPolicy": "Retain", "Properties": { "TableName": "Games", "AttributeDefinitions": [ { "AttributeName": "key", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "key", "KeyType": "HASH" } ], "BillingMode": "PAY_PER_REQUEST", "ProvisionedThroughput": { "ReadCapacityUnits": 0, "WriteCapacityUnits": 0 } } } } }
Example YAML
AWSTemplateFormatVersion: 2010-09-09 Description: Import test Resources: ServiceTable: Type: 'AWS::DynamoDB::Table' Properties: TableName: Service AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH BillingMode: PROVISIONED ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 1 GamesTable: Type: 'AWS::DynamoDB::Table' DeletionPolicy: Retain Properties: TableName: Games AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH BillingMode: PAY_PER_REQUEST ProvisionedThroughput: ReadCapacityUnits: 0 WriteCapacityUnits: 0
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "GamesTable": { "Type": "AWS::DynamoDB::Table", "DeletionPolicy": "Retain", "Properties": { "TableName": "Games", "AttributeDefinitions": [ { "AttributeName": "key", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "key", "KeyType": "HASH" } ], "BillingMode": "PAY_PER_REQUEST", "ProvisionedThroughput": { "ReadCapacityUnits": 0, "WriteCapacityUnits": 0 } } } } }
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.