cfn-init - AWS CloudFormation

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

cfn-init

Deskripsi

Skrip pembantu cfn-init membaca metadata templat dari kunci AWS::CloudFormation::Init dan bertindak sesuai dengan:

  • Ambil dan parse metadata dari CloudFormation

  • Menginstal paket

  • Menulis file ke disk

  • Mengaktifkan/menonaktifkan dan memulai/menghentikan layanan

catatan

Jika Anda menggunakan cfn-init untuk memperbarui file yang ada, itu membuat salinan cadangan dari file asli di direktori yang sama dengan ekstensi .bak. Misalnya, jika Anda memperbarui /path/to/file_name, tindakan tersebut menghasilkan dua file: /path/to/file_name.bak berisi konten file asli dan /path/to/file_name berisi konten yang diperbarui.

Untuk informasi tentang metadata templat, lihat AWS::CloudFormation::Init.

catatan

cfn-init tidak memerlukan kredensional, jadi Anda tidak perlu menggunakan--access-key,,--secret-key, --role atau opsi. --credential-file Namun, jika tidak ada kredensional yang ditentukan, CloudFormation periksa keanggotaan tumpukan dan membatasi cakupan panggilan ke tumpukan tempat instance tersebut berada.

Sintaksis

cfn-init --stack|-s stack.name.or.id \ --resource|-r logical.resource.id \ --region region \ --access-key access.key \ --secret-key secret.key \ --role rolename \ --credential-file|-f credential.file \ --configsets|-c config.sets \ --url|-u service.url \ --http-proxy HTTP.proxy \ --https-proxy HTTPS.proxy \ --verbose|-v

Opsi

Nama Deskripsi Diperlukan

-s, --stack

Nama tumpukan atau ID tumpukan.

Tipe: String

Default: Tidak Ada

Contoh: --stack { "Ref" : "AWS::StackName" },

Ya

-r, --resource

ID sumber daya logis dari sumber daya yang berisi metadata.

Tipe: String

Contoh: --resource WebServerHost

Ya

--region

Titik akhir CloudFormation regional untuk digunakan.

Tipe: String

Default: us-east-1

Contoh: --region ", { "Ref" : "AWS::Region" },

Tidak

--access-key

AWS kunci akses untuk akun dengan izin untuk DescribeStackResource menelepon CloudFormation. Parameter file kredensial menggantikan parameter ini.

Tipe: String

Tidak

--secret-key

AWS kunci akses rahasia yang sesuai dengan kunci AWS akses yang ditentukan.

Tipe: String

Tidak

--role

Nama peran IAM yang terkait dengan instance.

Tipe: String

Syarat: Parameter file kredensial menggantikan parameter ini.

Tidak

-f, --credential-file

File yang berisi secret access key dan access key. Parameter file kredensial menggantikan parameter --peran, --access-key, dan -secret key.

Tipe: String

Tidak

-c, --configsets

Daftar konfigurasi yang dipisahkan koma untuk dijalankan (secara berurutan).

Tipe: String

Default: default

Tidak

-u, --url

CloudFormation Endpoint yang akan digunakan.

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

-v, --verbose

Output verbose. Ini berguna untuk men-debug kasus di mana cfn-init gagal untuk menginisialisasi.

catatan

Untuk men-debug peristiwa inisialisasi, Anda harus mengaktifkan DisableRollback . Anda dapat melakukan ini dengan menggunakan CloudFormation konsol, memilih Tampilkan Opsi Lanjutan, dan kemudian mengatur Rollback pada kegagalan ke No. Anda kemudian dapat SSH ke konsol dan membaca log di /var/log/cfn-init.log.

Tidak

-h, --help

Menampilkan pesan bantuan dan keluar.

Tidak

Contoh

Contoh Amazon Linux

Cuplikan berikut menunjukkan UserData properti instance EC2, yang menjalankan InstallAndRun configset yang terkait dengan sumber daya. WebServerInstance

Untuk contoh templat lengkap, lihat Menerapkan aplikasi di Amazon EC2 dengan AWS CloudFormation.

Untuk menyertakan versi terbaru, tambahkan yum install -y aws-cfn-bootstrap ke fileUserData.

JSON

UserDataproperti menggunakan fungsi Fn::Join intrinsik.

{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }

YAML

UserDataproperti menggunakan fungsi Fn::Join intrinsik.

UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -xe - '' - yum install -y aws-cfn-bootstrap - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource WebServerInstance ' - ' --configsets InstallAndRun ' - ' --region ' - !Ref 'AWS::Region' - |+

JSON

UserDataproperti menggunakan fungsi Fn::Sub intrinsik.

{ "UserData": { "Fn::Base64": { "Fn::Sub": [ "#!/bin/bash -x\n# Install the files and packages from the metadata\n/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n\n# Signal the status from cfn-init\n/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n", {} ] } } }

YAML

UserDataproperti menggunakan fungsi Fn::Sub intrinsik.

UserData: !Base64 'Fn::Sub': - > #!/bin/bash -x # Install the files and packages from the metadata /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} - {}