

Ini adalah *Panduan Referensi CloudFormation Template* baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

# cfn-signal
<a name="cfn-signal"></a>

Skrip `cfn-signal` pembantu memberi sinyal CloudFormation untuk menunjukkan apakah instans Amazon EC2 telah berhasil dibuat atau diperbarui. Jika Anda menginstal dan mengkonfigurasi aplikasi perangkat lunak pada instance, Anda dapat memberi sinyal CloudFormation ketika aplikasi perangkat lunak tersebut siap.

Anda menggunakan `cfn-signal` skrip bersama dengan [`CreationPolicy`atribut](aws-attribute-creationpolicy.md) atau [`UpdatePolicy`atribut](aws-attribute-updatepolicy.md) dengan `WaitOnResourceSignals` untuk grup Amazon EC2 Auto Scaling. Saat CloudFormation membuat atau memperbarui sumber daya dengan kebijakan tersebut, ia menangguhkan pekerjaan di tumpukan hingga sumber daya menerima jumlah sinyal yang diperlukan atau hingga periode batas waktu terlampaui. Untuk setiap sinyal valid yang CloudFormation menerima, ia menerbitkan sinyal ke peristiwa tumpukan sehingga Anda melacak setiap sinyal.

**Topics**
+ [Sintaks untuk pemberian sinyal sumber daya (disarankan)](#w2aac32c29b9)
+ [Sintaks yang akan digunakan dengan penanganan syarat tunggu](#cfn-signal-Syntaxwaitcondition)
+ [Opsi](#cfn-signal-options)
+ [Contoh](#cfn-signal-examples)
+ [Sumber daya terkait](#cfn-signal-related-resources)

## Sintaks untuk pemberian sinyal sumber daya (disarankan)
<a name="w2aac32c29b9"></a>

Jika Anda ingin memberi sinyal CloudFormation sumber daya, gunakan sintaks berikut.

```
cfn-signal --success|-s signal.to.send \
        --access-key access.key \
        --credential-file|-f credential.file \
        --exit-code|-e exit.code \
        --http-proxy HTTP.proxy \
        --https-proxy HTTPS.proxy \
        --id|-i unique.id \
        --region AWS.region \
        --resource resource.logical.ID \
        --role IAM.role.name \
        --secret-key secret.key \
        --stack stack.name.or.stack.ID \
        --url CloudFormation.endpoint
```

**catatan**  
`cfn-signal`tidak memerlukan kredensil, jadi Anda tidak perlu menggunakan`--access-key`,, `--secret-key``--role`, atau `--credential-file` opsi. Namun, jika tidak ada kredensial yang ditentukan, CloudFormation memeriksa keanggotaan tumpukan dan membatasi cakupan panggilan ke tumpukan tempat instans berada. Untuk informasi selengkapnya, lihat [Izin untuk skrip pembantu](cfn-helper-scripts-reference.md#cfn-helper-scripts-reference-permissions).

## Sintaks yang akan digunakan dengan penanganan syarat tunggu
<a name="cfn-signal-Syntaxwaitcondition"></a>

Jika Anda ingin memberi sinyal penanganan syarat tunggu, gunakan sintaks berikut.

```
cfn-signal --success|-s signal.to.send \
        --reason|-r resource.status.reason \
        --data|-d data \
        --id|-i unique.id \
        --exit-code|-e exit.code \
        waitconditionhandle.url
```

## Opsi
<a name="cfn-signal-options"></a>

Opsi yang dapat Anda gunakan bergantung pada apakah Anda memberi sinyal kebijakan pembuatan atau penanganan syarat tunggu. Beberapa opsi yang berlaku untuk kebijakan pembuatan mungkin tidak berlaku untuk penanganan syarat tunggu.


| Nama | Deskripsi | Diperlukan | 
| --- | --- | --- | 
|  `--access-key` (pemberian sinyal sumber daya saja)  |  AWS kunci akses untuk akun dengan izin untuk memanggil CloudFormation `SignalResource ` API. Parameter file kredensial menggantikan parameter ini. *Tipe*: String  |  Tidak  | 
|  `-d, --data` (penanganan syarat tunggu saja)  |  Data untuk dikirim kembali dengan `waitConditionHandle`. Default ke kosong. *Tipe*: String *Default*: kosong  |  Tidak  | 
|  `-e, --exit-code`   |  Kode kesalahan dari suatu proses yang dapat digunakan untuk menentukan keberhasilan atau kegagalan. Jika ditentukan, opsi `--success` diabaikan. *Tipe*: String *Contoh*: `-e $?` (untuk Linux), `-e %ERRORLEVEL%` (untuk Windows cmd.exe), dan `-e $lastexitcode` (untuk Windows PowerShell).  |  Tidak  | 
|  `-f, --credential-file` (pemberian sinyal sumber daya saja)  |  File yang berisi secret access key dan access key. Parameter file kredensial menggantikan parameter --peran, --access-key, dan -secret key. *Tipe*: String  |  Tidak  | 
|  `--http-proxy`  |  Proksi HTTP (bukan SSL). Gunakan format berikut: `http://user:password@host:port` *Tipe*: String  |  Tidak  | 
|  `--https-proxy`  |  Proksi HTTPS. Gunakan format berikut: `https://user:password@host:port` *Tipe*: String  |  Tidak  | 
|  `-i, --id`  |  ID unik yang akan dikirim. *Tipe*: String *Default*: ID instans Amazon EC2. Jika ID tidak dapat diselesaikan, Nama Domain Berkualitas Penuh (FQDN) mesin dikembalikan.  |  Tidak  | 
|  `-r, --reason ` (penanganan syarat tunggu saja)  |  Alasan status untuk peristiwa sumber daya (saat ini hanya digunakan pada kegagalan) - default ke 'Konfigurasi gagal' jika keberhasilan salah. *Tipe*: String  |  Tidak  | 
| --region (pemberian sinyal sumber daya saja) |  Titik akhir CloudFormation regional untuk digunakan. *Tipe*: String *Default*: `us-east-1`  |  Tidak  | 
| --resource (pemberian sinyal sumber daya saja) |  ID logis dari sumber daya yang berisi kebijakan kreasi yang ingin Anda beri sinyal. *Tipe*: String  |  Ya  | 
|  `--role` (pemberian sinyal sumber daya saja)  |  Nama peran IAM yang terkait dengan instance. *Tipe*: String Syarat: Parameter file kredensial menggantikan parameter ini.  |  Tidak  | 
|  `-s, --success`   |  Jika benar, beri sinyal `SUCCESS`, jika tidak `FAILURE`. *Jenis*: Boolean *Default*: `true`  |  Tidak  | 
|  `--secret-key` (pemberian sinyal sumber daya saja)  |  AWS kunci akses rahasia yang sesuai dengan kunci AWS akses yang ditentukan. *Tipe*: String  |  Tidak  | 
|  `--stack` (pemberian sinyal sumber daya saja)  |  Nama tumpukan atau ID tumpukan yang berisi sumber daya yang ingin Anda beri sinyal. *Tipe*: String  |  Ya  | 
| -u, --url (pemberian sinyal sumber daya saja) |   CloudFormation Endpoint yang akan digunakan. *Tipe*: String  |  Tidak  | 
|  `waitconditionhandle.url` (penanganan syarat tunggu saja)  |  URL yang telah ditentukan sebelumnya yang dapat Anda gunakan untuk menandakan keberhasilan atau kegagalan ke `WaitCondition` *Tipe*: String  |  Ya  | 

## Contoh
<a name="cfn-signal-examples"></a>

### Contoh Amazon Linux
<a name="w2aac32c29c15b3"></a>

Pola penggunaan yang umum adalah menggunakan `cfn-init` dan `cfn-signal` bersama-sama. `cfn-signal`Panggilan menggunakan status pengembalian panggilan ke `cfn-init` (menggunakan \$1? konstruksi cangkang). Jika aplikasi gagal dipasang, instans akan gagal dibuat dan tumpukan akan di-rollback.

#### JSON
<a name="cfn-signal-example.json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Simple EC2 instance",
    "Resources": {
        "MyInstance": {
            "Type": "AWS::EC2::Instance",
            "Metadata": {
                "AWS::CloudFormation::Init": {
                    "config": {
                        "files": {
                            "/tmp/test.txt": {
                                "content": "Hello world!",
                                "mode": "000755",
                                "owner": "root",
                                "group": "root"
                            }
                        }
                    }
                }
            },
            "Properties": {
                "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}",
                "InstanceType": "t2.micro",
                "UserData": {
                    "Fn::Base64": {
                        "Fn::Join": [
                            "",
                            [
                                "#!/bin/bash -x\n",
                                "# Install the files and packages from the metadata\n",
                                "yum install -y aws-cfn-bootstrap",
                                "\n",
                                "/opt/aws/bin/cfn-init -v ",
                                "         --stack ",
                                {
                                    "Ref": "AWS::StackName"
                                },
                                "         --resource MyInstance ",
                                "         --region ",
                                {
                                    "Ref": "AWS::Region"
                                },
                                "\n",
                                "# Signal the status from cfn-init\n",
                                "/opt/aws/bin/cfn-signal -e $? ",
                                "         --stack ",
                                {
                                    "Ref": "AWS::StackName"
                                },
                                "         --resource MyInstance ",
                                "         --region ",
                                {
                                    "Ref": "AWS::Region"
                                },
                                "\n"
                            ]
                        ]
                    }
                }
            },
            "CreationPolicy": {
                "ResourceSignal": {
                    "Timeout": "PT5M"
                }
            }
        }
    }
}
```

#### YAML
<a name="cfn-signal-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Description: Simple EC2 instance
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Metadata:
      'AWS::CloudFormation::Init':
        config:
          files:
            /tmp/test.txt:
              content: Hello world!
              mode: '000755'
              owner: root
              group: root
    Properties:
      ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}'
      InstanceType: t2.micro
      UserData:
        Fn::Base64: !Sub |
          #!/bin/bash -x
          # Install the files and packages from the metadata
          yum install -y aws-cfn-bootstrap
          /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}
          # Signal the status from cfn-init
          /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}
    CreationPolicy:
      ResourceSignal:
        Timeout: PT5M
```

## Sumber daya terkait
<a name="cfn-signal-related-resources"></a>

Anda juga dapat mengunjungi GitHub repositori kami untuk mengunduh [contoh templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html#sample-templates) yang digunakan`cfn-signal`, termasuk templat berikut.
+  [InstanceWithCfnInit.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/EC2/InstanceWithCfnInit.yaml) 
+  [AutoScalingRollingUpdates.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/AutoScaling/AutoScalingRollingUpdates.yaml) 