

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de pilhas usando o modo Direct Change
<a name="dcm-creating-stacks"></a>

Há dois requisitos ao iniciar pilhas CloudFormation usando o`AWSManagedServicesCloudFormationAdminRole`, para que a pilha seja gerenciada pelo AMS:
+ O modelo deve conter um`AmsStackTransform`.
+ O nome da pilha deve começar com o prefixo `stack-` seguido por uma sequência alfanumérica de 17 caracteres.

**nota**  
Para usar o com sucesso`AmsStackTransform`, você deve reconhecer que seu modelo de pilha contém a `CAPABILITY_AUTO_EXPAND` capacidade para que CloudFormation (CFN) crie ou atualize a pilha. Você faz isso passando o `CAPABILITY_AUTO_EXPAND` como parte de sua solicitação de criação da pilha. O CFN rejeita a solicitação se esse recurso não for reconhecido quando incluído no modelo. `AmsStackTransform` O console CFN garante que você transmita esse recurso se tiver a transformação em seu modelo, mas isso pode passar despercebido quando você estiver interagindo com o CFN por meio deles. APIs  
Você deve transmitir esse recurso sempre que usar as seguintes chamadas de API CFN:  
[CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html)
[ CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html#API_CreateStack_RequestParameters)
[UpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html)

[Ao criar ou atualizar uma pilha com o DCM, as mesmas validações e aprimoramentos do CFN Ingest e do Stack Update CTs são realizados na pilha. Para obter mais informações, consulte CloudFormation Diretrizes, melhores práticas e limitações de ingestão.](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html) A exceção é que os grupos de segurança padrão do AMS (SGs) não serão anexados a nenhuma EC2 instância autônoma ou EC2 instância em grupos de Auto Scaling (). ASGs Ao criar seu CloudFormation modelo, com EC2 instâncias autônomas ou ASGs, você pode anexar o padrão. SGs 

**nota**  
Agora, as funções do IAM podem ser criadas e gerenciadas com `AWSManagedServicesCloudFormationAdminRole` o.

O padrão do AMS SGs tem regras de entrada e saída que permitem que as instâncias sejam iniciadas com êxito e sejam acessadas posteriormente por meio de SSH ou RDP pelas operações do AMS e por você. Se você achar que os grupos de segurança padrão do AMS são muito permissivos, você pode criar seus próprios SGs com regras mais restritivas e anexá-los à sua instância, desde que isso ainda permita que você e as operações do AMS acessem a instância durante incidentes.

Os grupos de segurança padrão do AMS são os seguintes:
+ SentinelDefaultSecurityGroupPrivateOnly: Pode ser acessado no modelo CFN por meio desse parâmetro SSM `/ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnly`
+ SentinelDefaultSecurityGroupPrivateOnlyEgressAll: Pode ser acessado no modelo CFN por meio desse parâmetro SSM `/ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnlyEgressAll`

## Transformação AMS
<a name="dcm-cs-ams-transform"></a>

 Adicione uma `Transform` declaração ao seu CloudFormation modelo. Isso adiciona uma CloudFormation macro que valida e registra a pilha no AMS no momento da inicialização. 

**Exemplo de JSON**

```
"Transform": {
    "Name": "AmsStackTransform",
    "Parameters": {
      "StackId": {"Ref" : "AWS::StackId"}
    }
  }
```

Exemplo de **YAML**

```
Transform:
  Name: AmsStackTransform
  Parameters:
    StackId: !Ref 'AWS::StackId'
```

Adicione também a `Transform` instrução ao atualizar o modelo de uma pilha existente.

**Exemplo de JSON**

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description" : "Create an SNS Topic",
    "Transform": {
      "Name": "AmsStackTransform",
      "Parameters": {
        "StackId": {"Ref" : "AWS::StackId"}
     }
  },
  "Parameters": {
    "TopicName": {
      "Type": "String",
      "Default": "HelloWorldTopic"
    }
  },
  "Resources": {
    "SnsTopic": {
      "Type": "AWS::SNS::Topic",
      "Properties": {
        "TopicName": {"Ref": "TopicName"}
      }
    }
  }
}
```

Exemplo de **YAML**

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Create an SNS Topic
Transform:
  Name: AmsStackTransform
  Parameters:
    StackId: !Ref 'AWS::StackId'
Parameters:
  TopicName:
    Type: String
    Default: HelloWorldTopic
Resources:
  SnsTopic:
    Type: AWS::SNS::Topic
    Properties:
      TopicName: !Ref TopicName
```

## Nome da pilha
<a name="dcm-cs-stack-name"></a>

O nome da pilha deve começar com o prefixo `stack-` seguido por uma sequência alfanumérica de 17 caracteres. Isso é para manter a compatibilidade com outros sistemas AMS que operam na pilha IDs AMS. 

 Veja a seguir exemplos de maneiras de gerar uma pilha IDs compatível:

Bash:

```
echo "stack-$(env LC_CTYPE=C tr -dc 'a-z0-9' < /dev/urandom | head -c 17)"
```

Python:

```
import string
import random

'stack-' + ''.join(random.choices(string.ascii_lowercase + string.digits, k=17))
```

Powershell:

```
"stack-" + ( -join ((0x30..0x39) + ( 0x61..0x7A) | Get-Random -Count 17  | % {[char]$_}) )
```