AWS::CloudFormation::Init - AWS CloudFormation

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

AWS::CloudFormation::Init

Gunakan AWS::CloudFormation::Init tipe untuk menyertakan metadata pada instans Amazon EC2 untuk skrip pembantu cfn-init. Jika templat Anda memanggil skrip cfn-init, skrip mencari metadata sumber daya yang di-root di AWS::CloudFormation::Init kunci metadata. Untuk informasi selengkapnya tentang cfn-init, lihat cfn-init.

cfn-init men-support semua jenis metadata untuk sistem Linux. Mendukung jenis metadata untuk Windows dengan kondisi yang dijelaskan di bagian yang mengikuti.

Untuk contoh penggunaan AWS::CloudFormation::Init dan skrip pembantu cfn-init untuk membuat tumpukan Linux, lihat. Menerapkan aplikasi di Amazon EC2 dengan AWS CloudFormation Untuk contoh tumpukan Windows, lihatBootstrapping tumpukan Windows AWS CloudFormation.

Sintaks

Konfigurasi dipisahkan menjadi beberapa bagian. Potongan templat berikut menunjukkan cara yang dapat Anda lakukan untuk melampirkan metadata untuk cfn-init ke sumber daya instans EC2 dalam templat.

Metadata diatur ke dalam kunci konfigurasi, yang dapat Anda kelompokkan ke dalam set konfigurasi. Anda dapat menentukan set konfigurasi ketika memanggil cfn-init dalam templat Anda. Jika Anda tidak menentukan set konfigurasi, cfn-init akan mencari kunci konfigurasi tunggal bernama konfigurasi.

catatan

Skrip pembantu cfn-init memproses bagian konfigurasi dalam urutan sebagai berikut: paket, grup, pengguna, sumber, file, perintah, dan kemudian layanan. Jika Anda memerlukan urutan yang berbeda, pisahkan bagian Anda ke kunci konfigurasi yang berbeda, dan kemudian gunakan configset yang menentukan urutan di mana kunci konfigurasi harus diproses.

JSON

"Resources": { "MyInstance": { "Type": "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : { "packages" : { : }, "groups" : { : }, "users" : { : }, "sources" : { : }, "files" : { : }, "commands" : { : }, "services" : { : } } } }, "Properties": { : } } }

YAML

Resources: MyInstance: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: config: packages: : groups: : users: : sources: : files: : commands: : services: : Properties: :
catatan

Bagian berikut berisi contoh skrip yang ditulis dalam bahasa skrip shell mirip Unix, seperti Bash. Untuk membuat skrip PowerShell sebagai gantinya, pastikan Anda terbiasa dengan PowerShell bahasa tersebut. PowerShell sintaks berbeda dari shell mirip Unix, jadi Anda harus memiliki keakraban dengan PowerShell cara melakukan sesuatu.

Set konfigurasi

Jika Anda ingin membuat lebih dari satu kunci konfigurasi dan menginginkan cfn-init memprosesnya dalam urutan tertentu, buat konfigurasi set yang berisi tombol konfigurasi dalam urutan yang diinginkan.

Konfigurasi set tunggal

Potongan templat berikut membuat set konfigurasi bernama ascending dan descending bahwa masing-masing berisi dua kunci konfigurasi.

JSON

"AWS::CloudFormation::Init" : { "configSets" : { "ascending" : [ "config1" , "config2" ], "descending" : [ "config2" , "config1" ] }, "config1" : { "commands" : { "test" : { "command" : "echo \"$CFNTEST\" > test.txt", "env" : { "CFNTEST" : "I come from config1." }, "cwd" : "~" } } }, "config2" : { "commands" : { "test" : { "command" : "echo \"$CFNTEST\" > test.txt", "env" : { "CFNTEST" : "I come from config2" }, "cwd" : "~" } } } }

YAML

AWS::CloudFormation::Init: configSets: ascending: - "config1" - "config2" descending: - "config2" - "config1" config1: commands: test: command: "echo \"$CFNTEST\" > test.txt" env: CFNTEST: "I come from config1." cwd: "~" config2: commands: test: command: "echo \"$CFNTEST\" > test.txt" env: CFNTEST: "I come from config2" cwd: "~"

Panggilan cfn-init terkait

Contoh panggilan ke cfn-init berikut mengacu pada contoh set konfigurasi sebelumnya. Contoh panggilan disingkat untuk kejelasan, lihat cfn-init untuk sintaks lengkap.

  • Jika panggilan untuk cfn-init menentukan ascending set konfigurasi:

    cfn-init -c ascending

    Skrip memproses config1 dan kemudian memproses config2 dan file test.txt akan berisi teks I come from config2.

  • Jika panggilan untuk cfn-init menentukan descending set konfigurasi:

    cfn-init -c descending

    Skrip memproses config2 dan kemudian memproses config1 dan file test.txt akan berisi teks I come from config1.

Beberapa set konfigurasi

Anda dapat membuat beberapa set konfigurasi, dan memanggil serangkaian lainnya menggunakan skrip cfn-init Anda. Setiap set konfigurasu dapat berisi daftar kunci konfigurasi atau referensi ke konfigurasi set lainnya. Sebagai contoh, cuplikan templat berikut membuat tiga set konfigurasi. Set konfigurasi pertama, test1, berisi satu kunci konfigurasi bernama 1. Set konfigurasi kedua, test2, berisi referensi ke test1 set konfigurasi dan satu kunci konfigurasi bernama 2. Konfigurasi set ketiga, default, berisi referensi ke set konfigurasi test2.

JSON

"AWS::CloudFormation::Init" : { "configSets" : { "test1" : [ "1" ], "test2" : [ { "ConfigSet" : "test1" }, "2" ], "default" : [ { "ConfigSet" : "test2" } ] }, "1" : { "commands" : { "test" : { "command" : "echo \"$MAGIC\" > test.txt", "env" : { "MAGIC" : "I come from the environment!" }, "cwd" : "~" } } }, "2" : { "commands" : { "test" : { "command" : "echo \"$MAGIC\" >> test.txt", "env" : { "MAGIC" : "I am test 2!" }, "cwd" : "~" } } } }

YAML

AWS::CloudFormation::Init: 1: commands: test: command: "echo \"$MAGIC\" > test.txt" env: MAGIC: "I come from the environment!" cwd: "~" 2: commands: test: command: "echo \"$MAGIC\" >> test.txt" env: MAGIC: "I am test 2!" cwd: "~" configSets: test1: - "1" test2: - ConfigSet: "test1" - "2" default: - ConfigSet: "test2"

Panggilan cfn-init terkait

Panggilan ke cfn-init berikut merujuk ke configSets yang dideklarasikan dalam cuplikan templat sebelumnya. Contoh panggilan disingkat untuk kejelasan, lihat cfn-init untuk sintaks lengkap.

  • Jika Anda menentukan test1 saja:

    cfn-init -c test1

    cfn-init hanya memproses konfigurasi kunci 1 saja.

  • Jika Anda menentukan test2 saja:

    cfn-init -c test2

    cfn-init memproses kunci konfigurasi 1 dan kemudian memproses konfigurasi kunci 2.

  • Jika Anda menentukan default set konfigurasi (atau bukan set konfigurasi sama sekali):

    cfn-init -c default

    Anda akan mendapatkan perilaku yang sama yang Anda lakukan jika Anda menentukan set konfigurasi test2.

Commands

Anda dapat menggunakan kunci perintah untuk menjalankan perintah pada instans EC2. Perintah dijalankan sebagai dalam urutan abjad berdasarkan nama.

Kunci Wajib Deskripsi

perintah

Diperlukan

Array atau string yang menentukan perintah yang akan dijalankan. Jika Anda menggunakan array, Anda tidak perlu menghindari karakter spasi atau melampirkan parameter perintah pada kutipan. Jangan gunakan array untuk menentukan beberapa perintah.

env

Opsional

Atur variabel lingkungan untuk perintah. Properti ini menimpa, alih-alih menambahkan, lingkungan yang ada.

cwd

Opsional

Direktori kerja saat ini.

pengujian

Opsional

Perintah uji yang menentukan apakah cfn-init menjalankan perintah yang ditentukan dalam kunci perintah. Jika tes berlalu, cfn-init menjalankan perintah. Skrip cfn-init menjalankan tes dalam penerjemah perintah, seperti Bash atau cmd.exe. Apakah tes berlalu tergantung pada kode keluar bahwa interpreter kembali.

Untuk Linux, perintah tes harus mengembalikan kode keluar dari 0 agar bisa lulus tes. Untuk Windows, perintah tes harus mengembalikan %ErrorLevel% dari 0.

ignoreErrors

Opsional

Nilai Boolean yang menentukan apakah cfn-init terus berjalan jika perintah yang terkandung dalam kunci perintah gagal (mengembalikan nilai bukan nol). Tetapkan ke true jika Anda ingin cfn-init terus menjalankan perintah meskipun perintah gagal. Tetapkan ke false jika Anda ingin cfn-init berhenti menjalankan perintah jika perintah gagal. Nilai default-nya adalah false.

waitAfterCompletion

Opsional

Untuk sistem Windows saja. Menentukan berapa lama menunggu (dalam detik) setelah perintah selesai dalam hal perintah menyebabkan reboot. Nilai default adalah 60 detik dan nilai "selamanya" mengarahkan cfn-init untuk keluar dan melanjutkannya lagi setelah reboot selesai. Tetapkan nilai ini ke 0 Jika Anda tidak ingin menunggu setiap perintah.

Contoh

Contoh cuplikan berikut memanggil perintah echo jika ~/test.txt file tidak ada.

JSON

"commands" : { "test" : { "command" : "echo \"$MAGIC\" > test.txt", "env" : { "MAGIC" : "I come from the environment!" }, "cwd" : "~", "test" : "test ! -e ~/test.txt", "ignoreErrors" : "false" }, "test2" : { "command" : "echo \"$MAGIC2\" > test2.txt", "env" : { "MAGIC2" : "I come from the environment!" }, "cwd" : "~", "test" : "test ! -e ~/test2.txt", "ignoreErrors" : "false" } }

YAML

commands: test: command: "echo \"$MAGIC\" > test.txt" env: MAGIC: "I come from the environment!" cwd: "~" test: "test ! -e ~/test.txt" ignoreErrors: "false" test2: command: "echo \"$MAGIC2\" > test2.txt" env: MAGIC2: "I come from the environment!" cwd: "~" test: "test ! -e ~/test2.txt" ignoreErrors: "false"

Berkas

Anda dapat menggunakan files kunci untuk membuat file di instans EC2. Konten dapat berupa inline dalam templat atau konten dapat ditarik dari URL. File ditulis ke disk dalam urutan leksikografis. Tabel berikut mencantumkan kunci yang didukung.

Kunci Deskripsi

content

Baik string maupun objek JSON diformat dengan benar. Jika Anda menggunakan objek JSON sebagai konten Anda, JSON akan ditulis ke file pada disk. Setiap fungsi intrinsik seperti Fn::GetAtt atau Ref dievaluasi sebelum objek JSON ditulis ke disk. Saat Anda membuat symlink, tentukan target symlink sebagai konten.

catatan

Jika Anda membuat symlink, skrip pembantu memodifikasi izin dari file target. Saat ini, Anda tidak dapat membuat symlink tanpa mengubah izin dari file target.

sumber

Sebuah URL untuk memuat file dari. Opsi ini tidak dapat ditentukan dengan kunci konten.

encoding

Format pengkodean. Hanya digunakan jika konten adalah string. Pengkodean tidak diterapkan jika Anda menggunakan sumber.

Nilai yang valid: plain | base64

grup

Nama grup yang memiliki file ini. Tidak mendukung sistem Windows.

owner

Nama pengguna yang memiliki file ini. Tidak mendukung sistem Windows.

Mode

Nilai oktal enam digit yang mewakili mode untuk file ini. Tidak mendukung sistem Windows. Gunakan tiga digit pertama untuk symlink dan tiga digit terakhir untuk pengaturan izin. Untuk membuat symlink, tentukan 120xxx, tempat xxx mendefinisikan izin file target. Untuk menentukan izin file, gunakan tiga digit terakhir, seperti 000644.

autentikasi

Nama metode autentikasi yang akan digunakan. Ini menimpa autentikasi default apapun. Anda dapat menggunakan properti ini untuk memilih metode auentikasi yang Anda tentukan dengan AWS::CloudFormation::Authentication sumber daya.

konteks

Menentukan konteks untuk file yang akan diproses sebagai Templat mustache. Untuk menggunakan kunci ini, Anda harus menginstal aws-cfn-bootstrap 1.3 —11 atau yang lebih baru selain pystache.

Contoh

Contoh potongan berikut membuat file bernama setup.mysql sebagai bagian dari instalasi yang lebih besar.

JSON

"files" : { "/tmp/setup.mysql" : { "content" : { "Fn::Join" : ["", [ "CREATE DATABASE ", { "Ref" : "DBName" }, ";\n", "CREATE USER '", { "Ref" : "DBUsername" }, "'@'localhost' IDENTIFIED BY '", { "Ref" : "DBPassword" }, "';\n", "GRANT ALL ON ", { "Ref" : "DBName" }, ".* TO '", { "Ref" : "DBUsername" }, "'@'localhost';\n", "FLUSH PRIVILEGES;\n" ]]}, "mode" : "000644", "owner" : "root", "group" : "root" } }

YAML

files: /tmp/setup.mysql: content: !Sub | CREATE DATABASE ${DBName}; CREATE USER '${DBUsername}'@'localhost' IDENTIFIED BY '${DBPassword}'; GRANT ALL ON ${DBName}.* TO '${DBUsername}'@'localhost'; FLUSH PRIVILEGES; mode: "000644" owner: "root" group: "root"

Template lengkap tersedia di: https://s3.amazonaws.com/ cloudformation-templates-us-east -1/Drupal_single_instance.Template

Contoh potongan berikut membuat symlink /tmp/myfile2.txt yang menunjuk pada file yang ada /tmp/myfile1.txt. Izin file target /tmp/myfile1.txt didefinisikan oleh nilai modus 644.

JSON

"files" : { "/tmp/myfile2.txt" : { "content" : "/tmp/myfile1.txt", "mode" : "120644" } }

YAML

files: /tmp/myfile2.txt: content: "/tmp/myfile1.txt" mode: "120644"

Templat kumis digunakan terutama untuk membuat file konfigurasi. Misalnya, Anda dapat menyimpan file konfigurasi dalam bucket S3 dan menginterpolasi Refs dan GetAtts dari template, alih-alih menggunakan. Fn::Join Contoh cuplikan berikut mengeluarkan "Konten untuk test9" untuk /tmp/test9.txt.

JSON

"files" : { "/tmp/test9.txt" : { "content" : "Content for {{name}}", "context" : { "name" : "test9" } } }

YAML

files: /tmp/test9.txt: content: "Content for {{name}}" context: name: "test9"

Saat bekerja dengan templat kumis, perhatikan hal berikut ini:

  • Kunci konteks harus hadir untuk file yang akan diproses.

  • Kunci konteks harus menjadi peta nilai kunci, tetapi dapat bersarang.

  • Anda dapat memproses file dengan konten inline menggunakan kunci konten dan file remote dengan menggunakan kunci sumber.

  • Dukungan kumis tergantung pada versi pystache. Versi 0.5.2 mendukung Spesifikasi mustache 1.1.2.

Grup

Anda dapat menggunakan kunci grup untuk membuat grup Linux/UNIX dan untuk menetapkan ID grup. Kunci grup tidak didukung untuk sistem Windows.

Untuk membuat grup, tambahkan pasangan nilai kunci baru yang memetakan nama grup baru untuk ID grup opsional. Kunci grup dapat berisi satu nama grup atau beberapa. Tabel berikut menjelaskan kunci yang tersedia.

Kunci Deskripsi

gid

Nomor ID grup.

Jika ID grup ditentukan, dan grup sudah ada berdasarkan nama, pembuatan grup akan gagal. Jika grup lain memiliki ID grup tertentu, OS dapat menolak pembuatan grup.

Contoh: { "gid" : "23" }

Contoh potongan

Potongan berikut menentukan grup bernama groupOne tanpa menetapkan ID grup dan grup bernama groupTwo yang menentukan nilai ID grup 45.

JSON

"groups" : { "groupOne" : {}, "groupTwo" : { "gid" : "45" } }

YAML

groups: groupOne: {} groupTwo: gid: "45"

Paket

Anda dapat menggunakan kunci untuk mengunduh dan memasang aplikasi dan komponen yang telah dikemas sebelumnya. Pada sistem Windows, kunci paket hanya mendukung penginstal MSI.

Format paket yang didukung

Skrip cfn-init saat ini mendukung format paket berikut: apt, msi, python, rpm, rubygems, yum, dan Zypper. Paket diproses dalam urutan sebagai berikut: rpm, yum/apt/zypper, dan kemudian rubygems dan python. Tidak ada pemesanan antara rubygems dan python, dan paket dalam setiap manajer paket tidak dijamin akan diinstal dalam urutan apapun.

Menentukan versi

Dalam setiap manajer paket, setiap paket ditetapkan sebagai nama paket dan daftar versi. Versi ini bisa berupa string, daftar versi, atau string atau daftar kosong. String atau daftar kosong menunjukkan bahwa Anda menginginkan versi terbaru. Untuk manajer rpm, versi ditentukan sebagai jalur menuju file pada disk atau URL.

Jika Anda menentukan versi paket, cfn-init mencoba untuk memasang versi tersebut meskipun versi paket yang lebih baru sudah dipasang pada instans. Beberapa manajer paket men-support beberapa versi, tetapi yang lain mungkin tidak. Verifikasi dokumentasi manajer paket Anda untuk informasi selengkapnya. Jika Anda tidak menentukan versi dan versi paket sudah diinstal, skrip cfn-init tidak akan menginstal versi baru— itu akan menganggap bahwa Anda ingin menyimpan dan menggunakan versi yang ada.

Contoh potongan

RPM, yum, Rubygems, dan Zypper

Cuplikan berikut menentukan URL versi untuk rpm, meminta versi terbaru dari yum dan Zypper, dan versi 0.10.2 koki dari rubygems:

JSON
"rpm" : { "epel" : "http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm" }, "yum" : { "httpd" : [], "php" : [], "wordpress" : [] }, "rubygems" : { "chef" : [ "0.10.2" ] }, "zypper" : { "git" : [] }
YAML
rpm: epel: "http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm" yum: httpd: [] php: [] wordpress: [] rubygems: chef: - "0.10.2" zypper: git: []

Paket MSI

Potongan berikut menentukan URL untuk paket MSI:

JSON
"msi" : { "awscli" : "https://s3.amazonaws.com/aws-cli/AWSCLI64.msi" }
YAML
msi: awscli: "https://s3.amazonaws.com/aws-cli/AWSCLI64.msi"

Layanan

Anda dapat menggunakan kunci layanan untuk menentukan layanan mana yang harus diaktifkan atau dinonaktifkan ketika instans diluncurkan. Pada sistem Linux, kunci ini didukung dengan menggunakan sysvinit atau systemd. Pada sistem Windows, didukung dengan menggunakan manajer layanan Windows.

Kunci tersebut juga mengizinkan Anda untuk menentukan dependensi pada sumber, paket, dan file sehingga jika mulai ulang diperlukan karena file yang diinstal, cfn-init akan mengurus layanan mulai ulang. Misalnya, jika Anda mengunduh paket Apache HTTP Server, instalasi paket secara otomatis akan memulai Apache HTTP Server selama proses pembuatan tumpukan. Namun, jika konfigurasi Apache HTTP Server diperbarui kemudian dalam proses pembuatan tumpukan, pembaruan tidak akan berlaku kecuali server Apache dimulai ulang. Anda dapat menggunakan kunci layanan untuk memastikan bahwa layanan HTTP Apache dimulai ulang.

Tabel berikut mencantumkan kunci yang didukung.

Kunci Deskripsi

ensureRunning

Atur ke betul untuk memastikan layanan berjalan setelah cfn-init selesai.

Atur ke salah untuk memastikan layanan tidak berjalan setelah cfn-init selesai.

Abaikan kunci ini untuk tidak membuat perubahan pada status layanan.

diaktifkan

Atur ke betul untuk memastikan layanan dimulai secara otomatis setelah boot.

Atur ke salah untuk memastikan layanan dimulai secara otomatis setelah boot.

Abaikan kunci ini untuk tidak membuat perubahan pada properti ini.

file

Daftar file. Jika cfn-init mengubahnya secara langsung melalui blok file, layanan ini akan dimulai ulang.

sumber

Daftar direktori. Jika cfn-init memperluas arsip ke salah satu direktori ini, layanan akan dimulai ulang.

paket

Peta manajer paket akan mendata nama paket. Jika cfn-init menginstal atau memperbarui salah satu paket ini, layanan ini akan dimulai ulang.

perintah

Daftar nama perintah. Jika cfn-init menjalankan perintah yang ditentukan, layanan ini akan dimulai ulang.

Contoh

Linux

Potongan Linux berikut mengonfigurasi layanan sebagai berikut:

  • Layanan nginx akan dimulai ulang jika salah satu /etc/nginx/nginx.conf atau /var/www/html dimodifikasi oleh cfn-init.

  • Layanan php-fastcgi akan dimulai ulang jika cfn-init menginstal atau memperbarui php atau spawn-fcgi menggunakan yum.

  • Layanan sendmail akan dihentikan dan dinonaktifkan menggunakan systemd.

JSON
"services" : { "sysvinit" : { "nginx" : { "enabled" : "true", "ensureRunning" : "true", "files" : ["/etc/nginx/nginx.conf"], "sources" : ["/var/www/html"] }, "php-fastcgi" : { "enabled" : "true", "ensureRunning" : "true", "packages" : { "yum" : ["php", "spawn-fcgi"] } } }, "systemd": { "sendmail" : { "enabled" : "false", "ensureRunning" : "false" } } }
YAML
services: sysvinit: nginx: enabled: "true" ensureRunning: "true" files: - "/etc/nginx/nginx.conf" sources: - "/var/www/html" php-fastcgi: enabled: "true" ensureRunning: "true" packages: yum: - "php" - "spawn-fcgi" systemd: sendmail: enabled: "false" ensureRunning: "false"

Untuk menggunakan systemd dengan layanan, layanan harus memiliki file unit systemd yang dikonfigurasi. File unit berikut memungkinkan systemd untuk memulai dan menghentikan cfn-hup daemon di target layanan multi-pengguna:

[Unit] Description=cfn-hup daemon [Service] ExecStart=/usr/bin/cfn-hup -v PIDFile=/var/run/cfn-hup.pid [Install] WantedBy=multi-user.target

Konfigurasi ini mengasumsikan bahwa cfn-hup diinstal di bawah direktori /usr/bin. Namun, lokasi sebenarnya di mana cfn-hup diinstal mungkin berbeda pada platform yang berbeda. Anda dapat mengganti konfigurasi ini dengan membuat file override di /etc/systemd/system/cfn-hup.service.d/override.conf sebagai berikut:

# In this example, cfn-hup executable is available under /usr/local/bin [Service] ExecStart= ExecStart=/usr/local/bin/cfn-hup -v

Windows

Potongan Windows berikut memulai cfn-hup layanan, mengaturnya ke otomatis, dan memulai ulang layanan jika cfn-init memodifikasi file konfigurasi yang ditentukan:

JSON
"services" : { "windows" : { "cfn-hup" : { "enabled" : "true", "ensureRunning" : "true", "files" : ["c:\\cfn\\cfn-hup.conf", "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf"] } } }
YAML
services: windows: cfn-hup: enabled: "true" ensureRunning: "true" files: - "c:\\cfn\\cfn-hup.conf" - "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf"

Sumber

Anda dapat menggunakan kunci sumber untuk mengunduh file arsip dan membukanya di direktori target pada instans EC2. Kunci ini didukung sepenuhnya untuk sistem Linux dan Windows.

Format yang didukung

Format yang didukung adalah:

  • tar

  • tar+gzip

  • tar+bz2

  • zip

Contoh

GitHub

Jika Anda menggunakan GitHub sebagai sistem kontrol sumber, Anda dapat menggunakan cfn-init dan mekanisme paket sumber untuk menarik versi tertentu dari aplikasi Anda. GitHub memungkinkan Anda untuk membuat .zip atau .tar dari versi tertentu melalui URL sebagai berikut:

https://github.com/<your directory>/(zipball|tarball)/<version>

Sebagai contoh, potongan berikut menarik ke bawah versi utama sebagai .tar file.

JSON
"sources" : { "/etc/puppet" : "https://github.com/user1/cfn-demo/tarball/main" }
YAML
sources: /etc/puppet: "https://github.com/user1/cfn-demo/tarball/main"

Bucket S3

Contoh berikut mengunduh tarball dari bucket S3 dan membongkarnya menjadi: /etc/myapp

catatan

Anda dapat menggunakan kredensial autentikasi untuk sumber. Namun, Anda tidak dapat menempatkan kunci autentikasi di blok sumber. Sebagai gantinya, sertakan kunci bucket di S3AccessCreds blok. Untuk informasi selengkapnya tentang kredensi autentikasi Amazon S3, lihat. AWS::CloudFormation::Authentication

Sebagai contoh, lihat contoh template.

JSON
"sources" : { "/etc/myapp" : "https://s3.amazonaws.com/mybucket/myapp.tar.gz" }
YAML
sources: /etc/myapp: "https://s3.amazonaws.com/mybucket/myapp.tar.gz"

Pengguna

Anda dapat menggunakan kunci pengguna untuk membuat pengguna Linux/UNIX pada instans EC2. Kunci pengguna tidak didukung untuk sistem Windows.

Tabel berikut mencantumkan kunci yang didukung.

Kunci Deskripsi

uid

ID pengguna. Proses pembuatan gagal jika nama pengguna ada dengan ID pengguna yang berbeda. Jika ID pengguna sudah ditetapkan untuk pengguna yang sudah ada, sistem operasi dapat menolak permintaan pembuatan.

grup

Daftar nama grup. Pengguna ditambahkan ke setiap grup dalam daftar.

homeDir

Direktori beranda pengguna.

Contoh

Pengguna dibuat sebagai pengguna sistem noninteraktif dengan shell /sbin/nologin. Hal ini sudah sesuai dengan tujuannya dan tidak dapat dimodifikasi.

JSON

"users" : { "myUser" : { "groups" : ["groupOne", "groupTwo"], "uid" : "50", "homeDir" : "/tmp" } }

YAML

users: myUser: groups: - "groupOne" - "groupTwo" uid: "50" homeDir: "/tmp"