Tạo cloudformation stack đầu tiên

Chuẩn bị cho CDK project

  1. Xoá file Fcj2024CdkStack đã được tạo sẵn trước đó

Architect

  1. Xoá những phần comment không cần thiết

Architect

  1. Tạo 1 stack mới bằng việc tạo 1 file java mới và đặt tên là EcrStack.java

Architect

Bằng cách sử dụng CDK, bạn có thể viết mã để tạo các stack và tài nguyên của CloudFormation. Mã của bạn sẽ được biên dịch thành các template CloudFormation tương ứng, sau đó có thể được triển khai bởi CloudFormation như bình thường

  1. Sau khi hoàn thành thành để class EcrStack kế thừa từ lớp Stack của thư viện Amzon CDK

Architect

  1. Tạo stack contructor

Architect

  1. Tạo AWS resource thông qua repository
  • Đầu tiên tạo thuộc tính productsServiceRepository bằng dòng lệnh bên dưới

    private final Repository productsServiceRepository;
    
  • Tiếp theo Khởi đạo thuộc tính productsServiceRepository trong contructor

    this.productsServiceRepository = new Repository();
    

Architect

  1. Để khởi tạo Repository ta thêm các parameter sau
  • this, this đề cập đến đối tượng lớp hiện tại (thường là một CDK stack).
  • “ProductsService”: Đây là tên duy nhất (ID) của tài nguyên được tạo. Tên này là duy nhất trong phạm vi của một stack CDK.
  • Sau đó tạo ECR Repository properties bằng RepositoryProps.builder().build()
    • builder() là một phương thức tĩnh của lớp RepositoryProps để khởi tạo một đối tượng Builder. Đây là một bước chuẩn bị để thiết lập các thuộc tính cho RepositoryProps.
    • Phương thức build() trên đối tượng Builder được gọi để kết thúc quá trình xây dựng và trả về một đối tượng RepositoryProps hoàn chỉnh với các thuộc tính đã thiết lập.

Architect

  1. Tạo ECR repository name bằng cách thêm đoạn code .repositoryName("productsservice") trước build()

Architect

  1. Them .removalPolicy(RemovalPolicy.DESTROY) để đảm bảo rằng khi khi xoá cloudformation stack resource của chúng ta cũng sẽ được xoá theo

Architect

  1. Tiếp theo cho phép override các image tren CER repository bằng việc cho phép IMMUTABLE thông qua đoạn code imageTagMutability(TagMutability.IMMUTABLE)

Architect

  1. Cho phép tự động xoá image khi xoá ECR bằng cách thêm code autoDeleteImages(true)

Architect

  1. Tạo phương thức Getter
public Repository getProductsServiceRepository() {
        return productsServiceRepository;
    }

Architect