Langkah 1: Unduh AWS CloudFormation template - AWS Service Catalog

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

Langkah 1: Unduh AWS CloudFormation template

Anda dapat menggunakan AWS CloudFormation templat untuk mengonfigurasi dan menyediakan portofolio dan produk. Template ini adalah file teks yang dapat diformat dalam JSON atau YAMAL dan menjelaskan sumber daya yang ingin Anda sediakan. Untuk informasi selengkapnya, lihat Format templat dalam Panduan Pengguna AWS CloudFormation. Anda dapat menggunakan AWS CloudFormation editor atau editor teks pilihan Anda untuk membuat dan menyimpan templat. Dalam tutorial ini, kami menyediakan template sederhana, sehingga Anda dapat memulai. Template meluncurkan instance Linux tunggal yang dikonfigurasi untuk akses SSH.

catatan

Menggunakan AWS CloudFormation template memerlukan izin khusus. Sebelum Anda mulai, pastikan Anda memiliki izin yang benar. Untuk informasi lebih lanjut, lihat prasyarat di. Memulai Perpustakaan

Unduhan templat

Contoh templat yang disediakan untuk tutorial ini, development-environment.template, tersedia di https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template.

Gambaran Umum Templat

Teks dari templat sampel berikut:

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based on the region in which the stack is run. This example creates an EC2 security group for the instance to give you SSH access. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "KeyName": { "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.", "Type": "AWS::EC2::KeyPair::KeyName" }, "InstanceType" : { "Description" : "EC2 instance type.", "Type" : "String", "Default" : "t2.micro", "AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "SSHLocation" : { "Description" : "The IP address range that can SSH to the EC2 instance.", "Type": "String", "MinLength": "9", "MaxLength": "18", "Default": "0.0.0.0/0", "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", "ConstraintDescription": "Must be a valid IP CIDR range of the form x.x.x.x/x." } }, "Metadata" : { "AWS::CloudFormation::Interface" : { "ParameterGroups" : [{ "Label" : {"default": "Instance configuration"}, "Parameters" : ["InstanceType"] },{ "Label" : {"default": "Security configuration"}, "Parameters" : ["KeyName", "SSHLocation"] }], "ParameterLabels" : { "InstanceType": {"default": "Server size:"}, "KeyName": {"default": "Key pair:"}, "SSHLocation": {"default": "CIDR range:"} } } }, "Mappings" : { "AWSRegionArch2AMI" : { "us-east-1" : { "HVM64" : "ami-08842d60" }, "us-west-2" : { "HVM64" : "ami-8786c6b7" }, "us-west-1" : { "HVM64" : "ami-cfa8a18a" }, "eu-west-1" : { "HVM64" : "ami-748e2903" }, "ap-southeast-1" : { "HVM64" : "ami-d6e1c584" }, "ap-northeast-1" : { "HVM64" : "ami-35072834" }, "ap-southeast-2" : { "HVM64" : "ami-fd4724c7" }, "sa-east-1" : { "HVM64" : "ami-956cc688" }, "cn-north-1" : { "HVM64" : "ami-ac57c595" }, "eu-central-1" : { "HVM64" : "ami-b43503a9" } } }, "Resources" : { "EC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceType" }, "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], "KeyName" : { "Ref" : "KeyName" }, "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] } } }, "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"} } ] } } }, "Outputs" : { "PublicDNSName" : { "Description" : "Public DNS name of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] } }, "PublicIPAddress" : { "Description" : "Public IP address of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] } } } }
Sumber Templat

Templat menyatakan sumber daya yang akan dibuat saat produk diluncurkan. Yang terdiri dari bagian-bagian berikut:

  • AWSTemplateFormatVersion(opsional) - Versi Format AWS Template yang digunakan untuk membuat template ini. Versi format template terbaru adalah 2010-09-09 dan saat ini satu-satunya nilai yang valid.

  • Deskripsi (opsional) — Deskripsi template.

  • Parameter (opsional) — Parameter yang harus ditentukan pengguna Anda untuk meluncurkan produk. Untuk setiap parameter, templat menyertakan deskripsi dan batasan yang harus dipenuhi oleh nilai yang diketik. Untuk informasi lebih lanjut tentang batasan, lihat Menggunakan Batasan AWS Service Catalog.

    Parameter KeyName memungkinkan Anda menentukan nama pasangan kunci Amazon Elastic Compute Cloud (Amazon EC2) yang harus disediakan pengguna akhir ketika mereka menggunakan AWS Service Catalog untuk meluncurkan produk Anda. Anda akan membuat pasangan kunci pada langkah berikutnya.

  • Metadata (opsional) — Objek yang memberikan informasi tambahan tentang template. Kunci AWS:CloudFormation: :Interface mendefinisikan bagaimana tampilan konsol pengguna akhir menampilkan parameter. Properti ParameterGroups menentukan metode pengelompokan parameter dan judul grup tersebut. Properti ParameterLabels menentukan nama parameter yang mudah diingat. Ketika pengguna menentukan parameter untuk meluncurkan produk yang berdasar pada templat ini, tampilan konsol pengguna akhir menampilkan parameter dengan label Server size: di judul Instance configuration, dan menampilkan parameter dengan label Key pair: dan CIDR range: di judul Security configuration.

  • Pemetaan (opsional) - Pemetaan kunci dan nilai terkait yang dapat Anda gunakan untuk menentukan nilai parameter bersyarat, mirip dengan tabel pencarian. Anda dapat mencocokkan kunci ke nilai yang sesuai dengan menggunakan fungsi FindInMap intrinsik Fn:: di bagian Sumber Daya dan Output. Template di atas mencakup daftar AWS Wilayah dan Gambar Mesin Amazon (AMI) yang sesuai dengan masing-masing. AWS Service Catalogmenggunakan pemetaan ini untuk menentukan AMI mana yang akan digunakan berdasarkan AWS Wilayah yang dipilih pengguna di. AWS Management Console

  • Sumber daya (wajib) - Tumpuk sumber daya dan propertinya. Anda dapat merujuk ke sumber daya di bagian Sumber Daya dan Keluaran dari template. Pada template di atas, kami menentukan instans EC2 yang menjalankan Amazon Linux dan grup keamanan yang memungkinkan akses SSH ke instance. Bagian Properties dari sumber daya instans EC2 menggunakan informasi yang diketik pengguna untuk mengonfigurasi jenis instans dan nama kunci untuk akses SSH.

    AWS CloudFormationmenggunakan AWS Region saat ini untuk memilih ID AMI dari pemetaan yang ditentukan sebelumnya dan menetapkan grup keamanan untuk itu. Grup keamanan dikonfigurasi untuk mengizinkan akses masuk pada port 22 dari rentang alamat IP CIDR yang ditentukan pengguna.

  • Output (opsional) — Teks yang memberi tahu pengguna saat peluncuran produk selesai. Templat yang disediakan mendapatkan nama DNS publik dari instans yang diluncurkan dan menampilkannya kepada pengguna. Pengguna memerlukan nama DNS untuk terhubung ke instans menggunakan SSH.

    Untuk informasi selengkapnya tentang halaman anatomi Template, lihat Referensi template di Panduan AWS CloudFormation Pengguna.