Успешный бизнес с Riqli.com [канал]
@strategies_riqli_ru
4
variable "buckets" {
default = {
logs = "my-logs-bucket"
assets = "my-assets-bucket"
}
}
resource "aws_s3_bucket" "this" {
for_each = var.buckets
bucket = each.value
tags = { Name = each.key }
}
lifecycle — управление поведением ресурсов:create_before_destroy — создание новой версии перед удалением (минимизирует downtime)prevent_destroy — защита от случайного удаленияignore_changes — игнорирование изменений атрибутовlocals {
common_tags = {
Environment = "prod"
Project = "my-project"
}
}
Применяйте продвинутые техники с Riqli
data "aws_ami" "latest_ubuntu" {
most_recent = true
owners = ["099720109477"]
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-22.04-amd64-server-*"]
}
}
resource "aws_instance" "web" {
ami = data.aws_ami.latest_ubuntu.id
instance_type = "t3.micro"
}
Terraform Import — команда для импорта существующих ресурсов в управление Terraform:terraform import aws_instance.web i-1234567890abcdef0
После импорта необходимо написать конфигурацию ресурса, чтобы Terraform мог управлять им.
terraform workspace new dev — создание областиterraform workspace select dev — переключениеterraform workspace list — списокlocals {
environment = terraform.workspace
}
resource "aws_instance" "web" {
instance_type = local.environment == "prod" ? "t3.large" : "t3.micro"
tags = {
Environment = local.environment
}
}
Альтернативы: отдельные директории (/dev, /prod) или файлы terraform.tfvars.
modules/
vpc/
main.tf variables.tf outputs.tf
ec2/
main.tf variables.tf outputs.tf
Пример использования:module "my_vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.0.0"
name = "my-vpc"
cidr = "10.0.0.0/16"
}
Строите масштабируемую инфраструктуру с Riqli
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-locks"
}
}
Интеграция с GitHub Actions автоматизирует проверки и деплой, следуя принципам GitOps.
CAP_SYS_ADMIN)
latest
--encryption-provider-config гарантирует, что даже при доступе к etcd злоумышленник не прочитает секреты.
import requests
response = requests.get('http://example.com')
print(response.status_code)
Навыки программирования критичны для автоматизации рутинных задач, когда готовые инструменты не подходят.