

# Evitar implantações de StackSets com falha usando portas de conta de destino
<a name="stacksets-account-gating"></a>

Uma porta de conta é um recurso opcional que ajuda você a verificar se uma conta de destino atende a determinados requisitos antes que o CloudFormation comece a executar operações de StackSets nessa conta. Essa verificação é realizada por meio de uma função do AWS Lambda que atua como uma verificação de pré-requisito.

Um exemplo comum de um portão de conta é a verificação de que não há alarmes do CloudWatch ativos ou não resolvidos na contas de destino. O CloudFormation invoca a função do Lambda toda vez que você inicia as operações de pilha na conta de destino, e só continua se a função retorna um código `SUCCEEDED`. Se a função do Lambda retornar um status `FAILED`, o CloudFormation não continuará a operação solicitada. Se você não tiver uma função do Lambda com uma porta de conta configurada, o CloudFormation vai ignorar a verificação e continuar com a operação.

Se a sua conta de destino falhar em uma verificação de portão de conta, a operação com falha entrará na contabilização do número ou porcentagem especificado de falhas toleradas em pilhas. Para obter mais informações sobre tolerância a falhas, consulte [Opções de operação de StackSets](stacksets-concepts.md#stackset-ops-options).

O portão de conta está disponível somente para operações do StackSets. Esse recurso não está disponível para outras operações do CloudFormation fora do StackSets.

## Requisitos
<a name="stacksets-accountgating_reqs"></a>

Os seguintes requisitos devem ser atendidos para a liberação da conta:
+ Sua função do Lambda deve ser nomeada `AWSCloudFormationStackSetAccountGate` para usar esse recurso.
+ A **AWSCloudFormationStackSetExecutionRole** precisa de permissões para invocar sua função do Lambda. Sem essas permissões, o CloudFormation ignora a verificação da liberação da conta e continua com as operações de pilha.
+ A permissão `InvokeFunction` do Lambda deve ser adicionada às contas de destino para que o portão de conta funcione. A política de confiança da conta de destino deve ter uma relação de confiança com a conta do administrador. Veja a seguir um exemplo de instrução de política que concede as permissões de `InvokeFunction` do Lambda.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "lambda:InvokeFunction"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------

## Modelos do CloudFormation para a criação de funções do Lambda
<a name="stacksets-sample-accountgate"></a>

Use os modelos de exemplo a seguir para criar funções `AWSCloudFormationStackSetAccountGate` do Lambda. Para criar uma nova pilha usando um desses modelos, consulte [Criar uma pilha no console do CloudFormation](cfn-console-create-stack.md).


|  Local do modelo  |  Descrição  | 
| --- | --- | 
|  [https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateSucceeded.yml](https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateSucceeded.yml)  |  Cria uma pilha que implementa uma função Lambda de portão de conta que retornará o status `SUCCEEDED`.  | 
|  [https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateFailed.yml](https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateFailed.yml)  |  Cria uma pilha que implementa uma função Lambda de portão de conta que retornará o status `FAILED`.  | 