AWS Notes
5.6K subscribers
444 photos
42 videos
10 files
2.8K links
AWS Notes — Amazon Web Services Educational and Information Channel

Chat: https://xn--r1a.website/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
Чтобы указать последнюю версию SSM Parameter в CloudFormation шаблоне — просто не указываем поле version:

version
If you do not specify the exact version, CloudFormation uses the latest version of the parameter whenever you create or update the stack.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm-pattern

#SSM #CloudFormation
​​Визуальный редактор CloudFormation шаблонов:

https://app.altostra.com/playground

Бесплатная утилита (в составе более широкого платного сервиса/продукта), позволяющая в браузере накликать нужный шаблон, получив на выходе JSON код для CloudFormation.

#CloudFormation
​​CloudFormation Public Registry:

https://aws.amazon.com/blogs/aws/introducing-a-public-registry-for-aws-cloudformation/

Изначально доступен набор публичных расширений от Амазона. Для включения дополнительных (3d-party) потребуется активация в консоли для каждого аккаунта/региона или можно сделать с помощью CloudFormation, в том числе через StackSets сразу на всю организацию.

Важно отметить, что при активации можно переопределить дефолтное имя на своё, что делает очень гибким процесс доработки под себя имеющихся публичных ресурсов.

В общем, крупное изменение, которое убирает ограничения появившегося в 2019-м приватного варианта реестра и добавляет CloudFormation плюс два к атаке на Terraform. 😄

#CloudFormation
​​Безоткатный режим CloudFormation --disable-rollback:

https://aws.amazon.com/blogs/aws/new-for-aws-cloudformation-quickly-retry-stack-operations-from-the-point-of-failure/

CloudFormation allows you to disable the automatic rollback, keep the resources successfully created or updated before the error occurs, and retry stack operations from the point of failure. In this way, you can quickly iterate to fix and remediate errors and greatly reduce the time required to test a CloudFormation template in a development environment.

Дождались, однако. Очень нужная фича, критическая для многих ситуаций.

На картинке видно, что если выбрать безоткатный режим, то созданные до ошибки ресурсы не удаляются (зелёные) и можно поробовать исправить ситуацию - поменять шаблон (или параметры в нём) и повторить апдейт либо же откатить по обычной схеме.

#CloudFormation
Новые CloudFormation ресурсы — теперь можно разворачивать окружение с Lightsail виртуалками:

🔹 AWS::Lightsail::Instance
🔹 AWS::Lightsail::Disk

#CloudFormation #Lightsail
Почему НУЖНО использовать CloudFormation:

https://www.cloudar.be/awsblog/do-use-aws-cloudformation/

Наш ответ Чемберлену Статья-ответ на «Почему НЕ нужно использовать CloudFormation». Аргументированная позиция с очевидным выводом – плюсы и минусы есть у обоих и выбирать стоит под задачу.

#CloudFormation #Terraform
​​Создание AWS аккаунтов через CloudFormation: 🎉

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Organizations.html

Не прошло и... эээ... 6... Что ж, лучше поздно, чем никогда.

Type: AWS::Organizations::Account
Properties:
AccountName: String
Email: String
ParentIds:
- String
RoleName: String
Tags:
- Tag

⚠️ Important
▪️ If you include multiple accounts in a single template, you must use the DependsOn attribute on each account resource type so that the accounts are created sequentially. If you create multiple accounts at the same time, Organizations returns an error and the stack operation fails.
▪️ You can't modify the following list of Account resource parameters using CloudFormation updates.
▫️ AccountName
▫️ Email
▫️ RoleName

#CloudFormation #Organizations
🎉7👍2🔥2❤‍🔥1
​​Cfnctl — Terraform cli experience for AWS Cloudformation

https://github.com/rogerwelin/cfnctl

With cfnctl, you write Cloudformation templates as usual but use the cli workflow that you are already used to from Terraform, including:

▪️ apply
▪️ plan
▪️ destroy
▪️ output
▪️ validate
▪️ version

#CloudFormation
👍7🔥2
​​cfn-teleport

A command-line tool which can move CloudFormation resources between stacks.

https://github.com/udondan/cfn-teleport

cfn-teleport --source Stack1 --target Stack2 --resource Bucket21D68F7E8 --resource Bucket182C536A1 --yes

#CloudFormation
👍8
​​Вдруг вы не заметили в AWS IAM Actions есть Generator:

https://www.awsiamactions.io/generator

В нём можно не только собрать нужную конструкцию политик в JSON, но и сразу же конвертировать это в Terraform и CloudFormation.

#IAM #Terraform #CloudFormation
🔥37👍1
​​CloudFormation team is running a survey to learn more about your perception of CloudFormation performance, with the goal of helping to improve the customer experience.

📢 Take the survey at:

https://amazonmr.au1.qualtrics.com/jfe/form/SV_2lwFTzuDD4aZL0i

#CloudFormation
👍2👌2
​​Loops in CloudFormation: !ForEach 💪

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-foreach.html

AWSTemplateFormatVersion: 2010-09-09
Transform: 'AWS::LanguageExtensions'
Resources:
'Fn::ForEach::Tables':
- TableName
- [Points, Score, Name, Leaderboard]
- 'DynamoDB${TableName}':
Type: 'AWS::DynamoDB::Table'
Properties:
TableName: !Ref TableName
AttributeDefinitions:
- AttributeName: id
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: '5'
WriteCapacityUnits: '5'

Fn::ForEach can be used in the sections:

▫️ Resource
▪️ Resource properties
▫️ Conditions
▫️ Outputs

Fn::ForEach parameters

Identifier (String) → Identifier is used to refer to the current element we’re iterating over within the Collection (Array of Strings).

Collection (Array of Strings) → Array of values that the Identifier can take.

OutputKey (String) → The key of the resulting key-value pair for the given element in the collection that will be merged to the parent object.

OutputValue (Any) → The value of the resulting key-value pair for the given element in the collection that will be merged to the parent object.

Note: the syntax of Fn::ForEach declaration has a suffix where the UniqueLoopName is used to identify the loop. This allows multiple Fn::ForEach function references to be declared on a given level.

#CloudFormation
🔥104😱4😁3👍1
🆕 CloudFormation + GitOps

https://aws.amazon.com/blogs/devops/automate-safe-aws-cloudformation-deployments-from-github/

With CloudFormation Git sync, you can manage your stacks with Git repository. The repository is monitored for changes to two files:

▫️ A CloudFormation template file that defines a stack
▫️ A stack deployment file that contains parameters that configure the stack

When you commit changes to the template or the deployment file, CloudFormation automatically updates the stack.

Supported:

GitHub
GitHub Enterprise
GitLab
Bitbucket

#CloudFormation
👍1