

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat tumpukan menggunakan mode Perubahan Langsung
<a name="dcm-creating-stacks"></a>

Ada dua persyaratan saat meluncurkan tumpukan dalam CloudFormation menggunakan`AWSManagedServicesCloudFormationAdminRole`, agar tumpukan dikelola oleh AMS:
+ Template harus berisi file`AmsStackTransform`.
+ Nama tumpukan harus dimulai dengan awalan `stack-` diikuti oleh string alfanumerik 17 karakter.

**catatan**  
Agar berhasil menggunakan`AmsStackTransform`, Anda harus mengakui bahwa template tumpukan Anda berisi `CAPABILITY_AUTO_EXPAND` kemampuan agar CloudFormation (CFN) membuat atau memperbarui tumpukan. Anda melakukan ini dengan meneruskan `CAPABILITY_AUTO_EXPAND` sebagai bagian dari permintaan create-stack Anda. CFN menolak permintaan jika kemampuan ini tidak diakui ketika disertakan dalam template. `AmsStackTransform` Konsol CFN memastikan bahwa Anda melewati kemampuan ini jika Anda memiliki transformasi di template Anda, tetapi ini dapat dilewatkan ketika Anda berinteraksi dengan CFN melalui mereka. APIs  
Anda harus meneruskan kemampuan ini setiap kali Anda menggunakan panggilan API CFN berikut:  
[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)

Saat membuat atau memperbarui tumpukan dengan DCM, validasi dan augmentasi CFN Ingest dan Pembaruan CTs Tumpukan yang sama dilakukan di tumpukan, untuk informasi selengkapnya lihat Pedoman [CloudFormation Ingest](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html), Praktik Terbaik, dan Batasan. Pengecualian untuk ini adalah bahwa grup keamanan default AMS (SGs) tidak akan dilampirkan ke instance atau EC2 EC2 instance yang berdiri sendiri di grup Auto Scaling (). ASGs Saat Anda membuat CloudFormation template, dengan EC2 instance yang berdiri sendiri atau ASGs, Anda dapat melampirkan default. SGs 

**catatan**  
Peran IAM sekarang dapat dibuat dan dikelola dengan. `AWSManagedServicesCloudFormationAdminRole`

Default AMS SGs memiliki aturan masuk dan keluar yang memungkinkan instans berhasil diluncurkan dan diakses nanti melalui SSH atau RDP oleh operasi AMS dan Anda. Jika Anda menemukan bahwa grup keamanan default AMS terlalu permisif, Anda dapat membuat sendiri SGs dengan aturan yang lebih ketat dan melampirkannya ke instans Anda, asalkan masih memungkinkan Anda dan operasi AMS untuk mengakses instans selama insiden.

Grup keamanan default AMS adalah sebagai berikut:
+ SentinelDefaultSecurityGroupPrivateOnly: Dapat diakses di template CFN melalui parameter SSM ini `/ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnly`
+ SentinelDefaultSecurityGroupPrivateOnlyEgressAll: Dapat diakses di template CFN melalui parameter SSM ini `/ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnlyEgressAll`

## Transformasi AMS
<a name="dcm-cs-ams-transform"></a>

 Tambahkan `Transform` pernyataan ke CloudFormation template Anda. Ini menambahkan CloudFormation makro yang memvalidasi dan mendaftarkan tumpukan dengan AMS pada waktu peluncuran. 

**Contoh JSON**

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

**Contoh YAMM**

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

Tambahkan juga `Transform` pernyataan saat memperbarui template tumpukan yang ada.

**Contoh 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"}
      }
    }
  }
}
```

**Contoh YAMM**

```
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
```

## Nama tumpukan
<a name="dcm-cs-stack-name"></a>

Nama tumpukan harus dimulai dengan awalan `stack-` diikuti oleh string alfanumerik 17 karakter. Ini untuk menjaga kompatibilitas dengan sistem AMS lain yang beroperasi pada tumpukan AMS IDs. 

 Berikut ini adalah contoh cara untuk menghasilkan tumpukan yang kompatibel IDs:

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]$_}) )
```