Substituir parâmetros em instâncias de pilha - AWS CloudFormation

Substituir parâmetros em instâncias de pilha

Em alguns casos, você pode desejar instâncias de pilha em determinadas regiões ou contas para ter valores de propriedades diferentes dos especificados no próprio conjunto de pilhas. Por exemplo, você pode especificar um valor diferente para um determinado parâmetro com base no uso de desenvolvimento ou de produção da conta. Nessas situações, o AWS CloudFormation permite substituir valores de parâmetros em instâncias de pilha por conta e região. Você pode substituir os valores de parâmetros do modelo ao criar as instâncias de pilha pela primeira vez e substituir valores de parâmetros de instâncias de pilha existentes. Você só pode definir parâmetros que substituiu anteriormente em instâncias da pilha de volta para os valores especificados no conjunto de pilhas.

As substituições de valores de parâmetros se aplicam a instâncias de pilha nas contas e regiões selecionadas. Durante atualizações do conjunto de pilhas, nenhum valor de parâmetro substituído para uma instância de pilha é atualizado, mas retém seu valor substituído.

Você só pode substituir valores de parâmetros específicos no conjunto de pilhas; para adicionar ou excluir um parâmetro, você precisa atualizar o modelo do conjunto de pilhas. Se você adicionar um parâmetro a um modelo de conjunto de pilhas, para poder substituir o valor desse parâmetro em uma instância de pilha, você deve primeiro atualizar todas as instâncias de pilha com os novos parâmetros e valor especificados no conjunto de pilhas. Quando todas as instâncias de pilha forem atualizadas com o novo parâmetro, você poderá substituir o valor do parâmetro nas instâncias de pilha individuais, conforme desejado.

Para saber como substituir valores de parâmetros de conjuntos de pilhas ao criar instâncias de pilha, consulte Adicionar pilhas a um conjunto de pilhas.

Substituir parâmetros em instâncias de pilha usando o AWS Management Console

  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. No painel de navegação, escolha StackSets. Na página StackSets, selecione o conjunto de pilhas criado em Criar um conjunto de pilhas. Neste passo-a-passo, criamos um conjunto de pilhas chamado my-awsconfig-stackset.

  3. Com o conjunto de pilhas selecionado, escolha Override StackSet parameters (Substituir parâmetros do StackSet) no menu Actions (Ações).

    
                            Página Gerenciar pilhas no conjunto de pilhas
  4. Na página Set deployment options (Definir opções de implantação), forneça as contas e regiões das instâncias da pilha cujos parâmetros você deseja substituir.

    O AWS CloudFormation implantará pilhas nas contas especificadas na primeira região, depois passará para a próxima e assim por diante, desde que as falhas de implantação de uma região não excedam uma tolerância a falhas especificada.

    1. [Permissões autogerenciadas] Para Deployment targets (Destinos da implantação), escolha Deploy stacks in accounts (Implantar pilhas em contas). Cole alguns ou todos os IDs de conta de destino usados para criar o conjunto de pilhas em Criar um conjunto de pilhas.

      [Permissões gerenciadas pelo serviço] Para Deployment targets (Destinos da implantação), escolha as contas em sua organização nas quais implantar.

      • Escolha Deploy to organizational units (OUs) (Implantar em unidades organizacionais (OUs)). Selecione uma ou mais das OUs de destino que você usou para criar seu conjunto de pilhas em Criar um conjunto de pilhas. Os valores de parâmetro substituídos só se aplicam às contas que estão atualmente nas OUs de destino e em suas OUs filhas. As contas adicionadas às OUs de destino e suas OUs filhas no futuro usarão os valores padrão do conjunto de pilhas e não os valores substituídos.

        
                                            Implantar substituições de parâmetro em todas as contas em OUs selecionadas dentro de sua organização.
      • Escolha Deploy to accounts (Implantar em contas). Cole alguns ou todos os IDs de OUs ou de contas de destino usados para criar o conjunto de pilhas em Criar um conjunto de pilhas.

        
                                            Implantar substituições de parâmetros para selecionar contas em sua organização.
    2. Em Deployment regions (Regiões de implantação), adicione uma ou mais das regiões nas quais você implantou instâncias da pilha referentes a esse conjunto de pilhas.

      Se você adicionar várias regiões, a ordem das regiões em Specify regions (Especificar regiões) determinará a ordem de implantação.

    3. Em Deployment options (Opções de implantação):

      • Em Maximum concurrent accounts (Máximo de contas concorrentes), mantenha os valores padrão de Number (Número) e 1.

        Isso significa que o AWS CloudFormation implantará sua pilha em apenas uma conta de cada vez.

      • Em Failure tolerance (Tolerância a falhas), mantenha os padrões de Number (Número) e 0.

        Isso significa que, no máximo, uma implantação de pilha poderá falhar em uma das suas regiões especificadas para que o AWS CloudFormation interrompa a implantação na região atual e cancele a implantação nas regiões restantes.

      Escolha Próximo.

  5. Na página Specify Overrides (Especificar substituições), verifique o parâmetro Frequency (Frequência) e escolha Override StackSet value (Substituir valor do StackSet) no menu Edit override value (Editar valor de substituição).

    
                            Selecione parâmetros para substituir e escolha Override StackSet value (Substituir valor do StackSet)
  6. Em Override StackSet parameter values (Substituir valores de parâmetros do StackSet), selecione 6hours (6 horas) para o parâmetro Frequency (Frequência) e escolha Save changes (Salvar alterações). Você está instruindo o AWS CloudFormation a substituir o valor do parâmetro Frequency (Frequência) e a usar 6hours (6 horas) para todas as instâncias de pilha para as contas especificadas nas regiões especificadas. Escolha Próximo.

    nota

    Para definir os parâmetros substituídos de volta para usarem o valor especificado no conjunto de pilhas, verifique todos os parâmetros e escolha Set to StackSet value (Definir como o valor do StackSet) no menu Edit override value (Editar valor de substituição). Isso remove todos os valores substituídos depois de você atualizar as instâncias de pilha.

  7. Na página Analisar, examine suas escolhas. Observe que o parâmetro Frequency (Frequência) exibe um valor na coluna Override value (Valor de substituição), indicando que seu valor foi substituído no nível da pilha.

    Antes de substituir os parâmetros para essas instâncias da pilha, é necessário marcar a caixa de seleção na área Capabilities (Recursos) para confirmar que alguns dos recursos que você está criando com o conjunto de pilhas podem exigir novos recursos e permissões do IAM. Para obter mais informações sobre as permissões que poderão ser necessárias, consulte Reconhecer recursos do IAM em modelos do AWS CloudFormation, neste guia. Quando estiver pronto, escolha Submit (Enviar).

  8. O AWS CloudFormation começa a atualizar suas instâncias da pilha. Visualize o progresso e o status das instâncias da pilha na página de detalhes do conjunto de pilhas que é aberta ao escolher Submit (Enviar).

Substituir parâmetros em instâncias de pilha usando o AWS CLI

Ao atuar como administrador delegado, você deve definir o parâmetro --call-as como DELEGATED_ADMIN todas as vezes que executar um comando StackSets.

--call-as DELEGATED_ADMIN

Execute o comando update-stack-instances da AWS CLI especificando --parameter-overrides: Para obter mais informações sobre como especificar --parameter-overrides, consulte Parameter na Referência de APIs do AWS CloudFormation e update-stack-instances na Referência de comandos da AWS CLI.

No comando de exemplo mostrado aqui, alteraremos a frequência de entrega do snapshot padrão da configuração do canal de entrega de TwentyFour_Hours para Twelve_Hours para as instâncias de pilha especificadas.

  1. Execute o seguinte comando . Para --stack-set-name, especifique o nome do conjunto de pilhas my-awsconfig-stackset.

    Configure a tolerância a falhas e o máximo de contas concorrentes definindo FailureToleranceCount como 0 e MaxConcurrentCount como 1 no parâmetro --operation-preferences, como mostrado no exemplo a seguir. Para aplicar porcentagens, use FailureTolerancePercentage ou MaxConcurrentPercentage. Para esta demonstração, estamos usando contagem, não porcentagem.

    nota

    O valor de MaxConcurrentCount depende do valor de FailureToleranceCount. MaxConcurrentCount é, no máximo, um a mais do que MaxConcurrentCount.

    [Permissões autogerenciadas] Forneça os IDs das contas nas quais você deseja substituir valores de parâmetros em instâncias de pilha.

    aws cloudformation update-stack-instances --stack-set-name my-awsconfig-stackset --parameter-overrides ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --accounts '["012345678901"]' --regions '["eu-west-1", "us-west-2"]'

    [Permissões gerenciadas por serviço] Forneça o ID raiz da organização, IDs de OUs ou IDs de contas do AWS Organizations nas quais você deseja substituir parâmetros em instâncias de pilha. Neste exemplo, substituímos valores de parâmetros nas instâncias de pilha em todas as contas na OU com o ID ou-rcuk-1x5j1lwo.

    Os valores de parâmetros substituídos só se aplicam às contas que estão atualmente na OU de destino e em suas OUs filhas. As contas adicionadas à OU de destino e suas OUs filhas no futuro usarão os valores padrão do conjunto de pilhas e não os valores substituídos.

    aws cloudformation update-stack-instances --stack-set-name my-awsconfig-stackset --parameter-overrides ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo"]' --regions '["eu-west-1", "us-west-2"]'
  2. Verifique se os valores dos parâmetros foram substituídos com êxito em instâncias de pilha executando o comando describe-stack-set-operation para mostrar o status e os resultados da operação de atualização. Para --operation-id, use o ID de operação retornado pelo comando update-stack-instances.

    aws cloudformation describe-stack-set-operation --operation-id operation_ID