Простое создание репозитория AWS ECR: разговорное руководство

В сегодняшней записи блога мы погрузимся в мир AWS ECR (Elastic Container Registry) и рассмотрим различные методы создания репозитория с помощью AWS CLI. Независимо от того, являетесь ли вы опытным разработчиком или только начинаете свой путь в облаке, это руководство предоставит вам разговорные объяснения и практические примеры кода, которые помогут вам начать работу. Итак, засучим рукава и начнём!

Метод 1: базовый подход
Самый простой способ создать репозиторий ECR с помощью интерфейса командной строки AWS — использовать create-repository

aws ecr create-repository --repository-name my-ecr-repo

Метод 2: настройка параметров репозитория
Если вам нужен больший контроль над репозиторием ECR, вы можете использовать дополнительные параметры с помощью команды create-repository. Например, вы можете установить политику хранилища, настроить параметры сканирования изображений или включить политики жизненного цикла. Взгляните на этот пример:

aws ecr create-repository --repository-name my-ecr-repo --image-scanning-configuration scanOnPush=true --encryption-configuration encryptionType=KMS,existingEncryptionKeyId=arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab

Метод 3: Пакетное создание репозиториев
Если вам нужно создать несколько репозиториев ECR одновременно, вы можете использовать команду batch-delete-repositories. Эта команда позволяет вам предоставить файл JSON, содержащий массив имен репозиториев. Вот пример:

aws ecr batch-create-repositories --cli-input-json file://repo-input.json

Метод 4. Автоматизация создания репозитория с помощью AWS CloudFormation
Для более продвинутой автоматизации вы можете использовать AWS CloudFormation для создания репозиториев ECR. Определив свою инфраструктуру в виде кода, вы можете легко управлять процессом создания репозитория и управлять его версиями. Ниже приведен пример фрагмента шаблона CloudFormation для создания репозитория ECR:

Resources:
  MyECRRepository:
    Type: "AWS::ECR::Repository"
    Properties:
      RepositoryName: my-ecr-repo
      RepositoryPolicyText:
        Version: "2012-10-17"
        Statement:
          - Sid: AllowPull
            Effect: Allow
            Principal:
              AWS: "*"
            Action:
              - "ecr:GetDownloadUrlForLayer"
              - "ecr:BatchGetImage"
              - "ecr:BatchCheckLayerAvailability"
              - "ecr:DescribeRepositories"
              - "ecr:DescribeImages"
              - "ecr:ListImages"
            Resource: "*"