Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
cfn-signal
Skrip cfn-signal
pembantu 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 cfn-signal
skrip bersama dengan CreationPolicyatribut atau UpdatePolicyatribut 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.
Topik
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
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.
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 peran IAM yang terkait dengan instans. 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 kunci AWS akses yang ditentukan. 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
bersama-sama. cfn-signal
Panggilan menggunakan status pengembalian panggilan ke cfn-init
(menggunakan $? konstruksi cangkang). Jika aplikasi gagal dipasang, instans akan gagal dibuat dan tumpukan akan di-rollback.
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
Sumber daya terkait
Anda juga dapat mengunjungi GitHub repositori kami untuk mengunduh contoh templat yang digunakancfn-signal
, termasuk templat berikut.