АВС ЦлоудФорматион: Где пронаћи помоћ када вам је потребна

Загледање у обичан, неми одзив командне линије без појма шта даље радити са АВС ЦЛИ-јем може бити понижавајуће искуство. И, према мом искуству, загледање у Управљачку конзолу за АВС ЦлоудФорматион може бити горе.

Дакле, дозволите ми да вам понудим брзу помоћ за „почетак рада“ на основу дела садржаја у мом најновијем курсу Плуралсигхт.

Пре свега, ако планирате да управљате својим ЦлоудФорматион стековима преко АВС ЦЛИ-ја, а не кроз Манагемент Цонсоле, у овом чланку ћу размотрити основе. Једном када се то све поправи, бићете спремни на све.

Почните једноставно:

$ aws s3 ls 2019-11-03 13:16:59 athena5905 2019-02-03 18:01:42 book-3939 2014-07-01 18:52:32 elasticbeanstalk-ap-northeast-1-426397493112 2014-08-28 16:57:49 elasticbeanstalk-us-east-1-426497493912 2019-05-04 22:17:50 ltest236 2018-07-15 15:52:30 mybucket99688223 2017-07-25 17:06:43 nextcloud3239027

„авс“ у том примеру говори вашој љусци да желите да следећим наредбама управља АВС ЦЛИ. Следећи тип „с3“ који укуцам говори ЦЛИ-у да ћу користити С3 услугу - то је Амазонова једноставна услуга складиштења. Коначно, „лс“ или „лист“ је наредба коју бих желео да покренем против те услуге.

ЦЛИ, користећи променљиве за потврду идентитета налога које је алат за конфигурисање додао у моје окружење, сада ће пожурити и приступити мом налогу, у овом случају дохвативши имена свих мојих сегмената.

Предвидљиво, АВС-у кажете да желите да радите са ЦлоудФорматион-ом користећи „цлоудформатион“. Ако то само покренем без навођења наредбе, добићу поруку о грешци:

aws cloudformation usage: aws [options]   [ ...] [parameters] To see help text, you can run: aws help aws  help aws   help aws: error: the following arguments are required: operation 

Али то је важна порука, јер нам говори како да приступимо уграђеној документацији. Контекстна помоћ је доступна на сваком слоју.

Погледајте шта се дешава ако додате „помоћ“ после „облакформација“. Добићете кратак опис, а затим листу свих доступних поднаредби.

$ aws cloudformation help CLOUDFORMATION() CLOUDFORMATION() NAME cloudformation - DESCRIPTION AWS CloudFormation allows you to create and manage AWS infrastructure deployments predictably and repeatedly. You can use AWS CloudFormation to leverage AWS products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to build highly-reliable, highly scalable, cost-effective applications without creating or configuring the underlying AWS infrastructure. With AWS CloudFormation, you declare all of your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. AWS CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you. For more information about AWS CloudFormation, see the AWS CloudFormation Product Page. Amazon CloudFormation makes use of other AWS products. If you need additional technical information about a specific AWS product, you can find the product's technical documentation at docs.aws.amazon.com. AVAILABLE COMMANDS o cancel-update-stack o continue-update-rollback o create-change-set o create-stack o create-stack-set o delete-change-set o delete-stack o delete-stack-instances o delete-stack-set o deploy o describe-account-limits o describe-change-set o describe-stack-events o describe-stack-instance o describe-stack-resource o describe-stack-resources o describe-stack-set o describe-stack-set-operation o describe-stacks o estimate-template-cost o execute-change-set o get-stack-policy [...]

Сада покрените наредбу "десцри-стацкс". На вашем рачуну тренутно вероватно нема активних стекова, тако да нећете видети никакве резултате.

Али поновите то, овога пута додајући „помоћ“. Овај ће вам показати неке опције које ће вам омогућити да филтрирате или манипулишете подацима које добијете назад. Можете, на пример, усмерити ЦЛИ на један одређени стек помоћу „--стацк-наме“, а затим имена постојећег стека.

$ aws cloudformation describe-stacks $ aws cloudformation describe-stacks help NAME describe-stacks - DESCRIPTION Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. NOTE: If the stack does not exist, an AmazonCloudFormationException is returned. See also: AWS API Documentation See 'aws help' for descriptions of global parameters. describe-stacks is a paginated operation. Multiple API calls may be issued in order to retrieve the entire data set of results. You can disable pagination by providing the --no-paginate argument. When using --output text and the --query argument on a paginated response, the --query argument must extract data from the results of the following query expressions: Stacks SYNOPSIS describe-stacks [--stack-name ] [--cli-input-json ] [--starting-token ] [--max-items ] [--generate-cli-skeleton ] OPTIONS --stack-name (string) The name or the unique stack ID that is associated with the stack, which are not always interchangeable: [...] $ aws cloudformation describe-stacks --stack-name myname 

То су алати који ће вам помоћи без обзира на то коју АВС услугу користите. Али, конкретно гледајући ЦлоудФорматион, постоје неке вредне званичне колекције узорака шаблона о којима бисте требали знати. ЈСОН или ИАМЛ синтакса јесу оно што јесу, вероватно нећете желети да почнете од празног документа.

Сам Амазон је сјајно обавио посао правећи предлошке за рад са нама. Прво заустављање требало би да буде страница АВС ЦлоудФорматион Темплатес. Овде ћете пронаћи везе до исечака и одређених оквира апликација и још неки врхунски садржај.

Али тренутно бих вам скренуо пажњу на један од „узорака шаблона“ који је организовала АВС услуга (овај код потиче из једног од примера Амазон ЕЦ2).

Предложак започиње описом бесплатног обрасца који нам корисно говори какав ће то стек створити. Такође нам је речено да можемо прилагодити предложак користећи постојећу Еластичну ИП адресу уместо оне која се аутоматски генерише.

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "AWS CloudFormation Sample Template EC2InstanceWithSecurityGroupSample: Create 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.", 

Морате да унесете име постојећег КеиПаир-а из тренутне регије на вашем АВС налогу, тако да ћете моћи да отворите удаљени ССХ у инстанцу Линука која ће бити покренута. Алтернативно можете пренијети ту вриједност из наредбене линије.

Одељак Параметри је такође место где дефинишете тип инстанце ЕЦ2. Подразумевано је т2.смалл, али било би нам дозвољено да заменимо ту вредност за било коју другу дозвољену вредност у овом документу или да је заменимо из командне линије.

 "Parameters" : { "KeyName": { "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance", "Type": "AWS::EC2::KeyPair::KeyName", "ConstraintDescription" : "must be the name of an existing EC2 KeyPair." }, "InstanceType" : { "Description" : "WebServer EC2 instance type", "Type" : "String", "Default" : "t2.small", 

Ако се померите надоле кроз одељак Мапирања, видећемо дугачке листе доступних хардверских архитектура и Амазон Мацхине Имаге идентификаторе за сваку регију.

Ово је опционални одељак у који можете да уметнете своје нестандардне вредности, па би се рецимо покренуо тип слике на основу одређеног скупа параметара - можда чак и приватне АМИ слике. Такви подаци су организовани у парове кључ / вредност.

 "Mappings" : { "AWSInstanceType2Arch" : { "t1.micro" : { "Arch" : "HVM64" }, "t2.nano" : { "Arch" : "HVM64" }, "t2.micro" : { "Arch" : "HVM64" }, 

Одељак Ресурси у овом случају дефинише ваше окружење инстанце. На пример, СецуритиГроуп је конфигурисана да отвара ССХ порт 22, али ништа друго. Јавна ИП адреса инстанце је такође повезана са новом Еластичном ИП адресом која ће бити додељена.

 "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"} } ] } } }, 

Још један важан Амазон-ов ресурс: Куицк Стартс. Строго говорећи, унапред изграђени стекови инфраструктуре који су овде дати да би вам помогли да направите сложеније примене у облаку нису директно повезани са ЦлоудФорматионом. Њих су обезбедиле независне компаније да поједноставе процес изградње своје инфраструктуре у оквиру АВС платформе.

Али чињеница је да сваки од њих започиње са својим јединственим ЦлоудФорматион шаблоном. Кликом на стварне примере често ћете доћи до предложака изворног кода стека унутар ГитХуб репо-а. Овај пример показује нам алате који су вам потребни за покретање ХасхиЦорп конзоле:

У сваком случају, слободно користите ове предлошке као алате за учење - или прегледајте избор да бисте видели да ли тамо постоји стек који одговара вашим потребама.

Много је више административне доброте у облику књига, курсева и чланака доступних на мом боотстрап-ит.цом.