Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
cfn-signal
Deskripsi
Skrip pembantu sinyal cfn memberi sinyal CloudFormation untuk menunjukkan apakah EC2 instans Amazon 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 skrip sinyal cfn bersama dengan grup Auto Scaling CreationPolicyatribut atau Auto Scaling dengan kebijakan pembaruan. WaitOnResourceSignals 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, CloudFormation menerbitkan sinyal ke peristiwa tumpukan sehingga Anda melacak setiap sinyal. Untuk panduan yang menggunakan kebijakan pembuatan dan sinyal cfn, lihat Menyebarkan aplikasi di Amazon EC2.
catatan
cfn-signal tidak memerlukan kredensial, jadi Anda tidak perlu menggunakan opsi --access-key
, --secret-key
, --role
, atau --credential-file
. Namun, jika tidak ada kredensil yang ditentukan, CloudFormation periksa keanggotaan tumpukan dan membatasi ruang lingkup panggilan ke tumpukan tempat instance tersebut berada.
Sintaks untuk pemberian sinyal sumber daya (disarankan)
Jika Anda ingin memberi sinyal CloudFormation sumber daya, gunakan sintaks berikut.
cfn-signal --success|-s
signal.to.send
\ --access-keyaccess.key
\ --credential-file|-fcredential.file
\ --exit-code|-eexit.code
\ --http-proxyHTTP.proxy
\ --https-proxyHTTPS.proxy
\ --id|-iunique.id
\ --regionAWS.region
\ --resourceresource.logical.ID
\ --roleIAM.role.name
\ --secret-keysecret.key
\ --stackstack.name.or.stack.ID
\ --urlAWS CloudFormation.endpoint
Sintaks yang akan digunakan dengan penanganan syarat tunggu
Jika Anda ingin memberi sinyal penanganan syarat tunggu, gunakan sintaks berikut.
cfn-signal --success|-s
signal.to.send
\ --reason|-rresource.status.reason
\ --data|-ddata
\ --id|-iunique.id
\ --exit-code|-eexit.code
\waitconditionhandle.url
Opsi
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 |
---|---|---|
|
AWS kunci akses untuk akun dengan izin untuk memanggil CloudFormation Tipe: String |
Tidak |
|
Data untuk dikirim kembali dengan Tipe: String Default: kosong |
Tidak |
|
Kode kesalahan dari suatu proses yang dapat digunakan untuk menentukan keberhasilan atau kegagalan. Jika ditentukan, opsi Tipe: String Contoh: |
Tidak |
|
File yang berisi secret access key dan access key. Parameter file kredensial menggantikan parameter --peran, --access-key, dan -secret key. Tipe: String |
Tidak |
|
Sebuah HTTP proxy (non-SSL). Gunakan format berikut: Tipe: String |
Tidak |
|
Sebuah HTTPS proxy. Gunakan format berikut: Tipe: String |
Tidak |
|
ID unik yang akan dikirim. Tipe: String Default: ID dari EC2 instans Amazon. Jika ID tidak dapat diselesaikan, Nama Domain Berkualitas Penuh (FQDN) mesin dikembalikan. |
Tidak |
|
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: |
Tidak |
--resource (pemberian sinyal sumber daya saja) |
ID logis dari sumber daya yang berisi kebijakan kreasi yang ingin Anda beri sinyal. Tipe: String |
Ya |
|
Nama IAM peran yang terkait dengan instance. Tipe: String Syarat: Parameter file kredensial menggantikan parameter ini. |
Tidak |
|
Jika benar, beri sinyal Jenis: Boolean Default: |
Tidak |
|
AWS kunci akses rahasia yang sesuai dengan yang ditentukan AWS kunci akses. Tipe: String |
Tidak |
|
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 |
|
Presigned URL yang dapat Anda gunakan untuk memberi sinyal keberhasilan atau kegagalan untuk yang terkait Tipe: String |
Ya |
Contoh
Contoh Amazon Linux
Pola penggunaan yang umum adalah menggunakan cfn-init dan cfn-signal secara bersamaan. Panggilan cfn-signal menggunakan status pengembalian panggilan ke cfn-init (menggunakan konstruksi shell $?). Jika aplikasi gagal dipasang, instans akan gagal dibuat dan tumpukan akan di-rollback. Untuk tumpukan Windows, lihat Bootstrapping AWS CloudFormation Tumpukan Windows.
JSON
{ "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
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: !Base64 'Fn::Join': - '' - - | #!/bin/bash -x - | # Install the files and packages from the metadata - yum install -y aws-cfn-bootstrap - |+ - | - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource MyInstance ' - ' --region ' - !Ref 'AWS::Region' - |+ - | # Signal the status from cfn-init - '/opt/aws/bin/cfn-signal -e $? ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource MyInstance ' - ' --region ' - !Ref 'AWS::Region' - |+ CreationPolicy: ResourceSignal: Timeout: PT5M
Contoh
Beberapa CloudFormation contoh template menggunakan cfn-signal, termasuk template berikut.