Thai  Son

Thai Son

1652509440

Cách Triển Khai Kotlin Microservice Tới AWS Với App Runner

Chào mọi người. Trong hướng dẫn từng bước này, tôi muốn chỉ cho bạn cách triển khai Kotlin Microservice bằng Docker và AWS App Runner.

Chúng ta sẽ cùng nhau tìm hiểu:

  • AWS App Runner chính xác là gì?
  • cách định cấu hình Giao diện dòng lệnh AWS trên máy cục bộ của bạn
  • cách đẩy hình ảnh Docker vào Amazon Elastic Container Registry (ECR)
  • và cuối cùng, cách triển khai ứng dụng được tích hợp của chúng tôi với AWS App Runner

Tôi biết, nó có vẻ như là một khối lượng công việc lớn. Nhưng tôi tin rằng bạn sẽ thấy nó có thể đơn giản như thế nào với ngăn xếp công nghệ ở trên.

Điều kiện tiên quyết

Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt Docker trên máy cục bộ của mình. Chúng tôi sẽ cần phải chứa ứng dụng của mình.

Nếu bạn không có Docker, thì tài liệu Docker chính thức sẽ giúp bạn thiết lập nó trong vài phút.

Chính xác thì AWS App Runner là gì?

Trước tiên, hãy dành vài phút để hiểu chính xác AWS App Runner là gì.

Nói một cách đơn giản, đây là một dịch vụ được quản lý hoàn toàn cho phép bạn xây dựng và triển khai các ứng dụng web và API được chứa trong vùng một cách dễ dàng.

Nó xử lý rất nhiều thứ, như cân bằng tải lưu lượng truy cập hoặc mở rộng quy mô, giúp các nhà phát triển như bạn và tôi tập trung vào mã.

AWS App Runner đôi khi là một lựa chọn tuyệt vời khi tạo bản demo hoặc bằng chứng về khái niệm, nhưng nó cũng đáng xem xét đối với các nhóm nhỏ hơn mà không có người chuyên dụng làm việc trên cơ sở hạ tầng.

Cách tạo aSimple Kotlin Microservice

Như đã nói, hãy chuẩn bị một API REST đơn giản bằng cách sử dụng Kotlin và Ktor.

Nếu bạn không quan tâm đến việc triển khai Ktor, thì bạn có thể chỉ cần sao chép kho lưu trữ GitHub này và chuyển sang bước Cách tạo hình ảnh Docker .

Nếu bạn đang sử dụng IntelliJ IDEA Ultimate Edition, thì bạn có thể tạo dự án Ktor bằng ứng dụng. Nếu không, bạn có thể sử dụng công cụ Ktor Project Generator và tải dự án xuống máy cục bộ của mình.

Bất kể lựa chọn của bạn là gì, hãy đảm bảo nhập các plugin sau:

  • Nội dung thương lượng
  • kotlinx.serialization
  • Lộ trình

Cách cấu hình Serialization

Sau khi bạn đã nhập dự án, hãy tạo Serialization.kttệp và đăng ký application/jsonloại nội dung cho tính năng Thương lượng nội dung:

fun Application.configureSerialization() {
    install(ContentNegotiation) {
        json()
    }
}

Nói một cách đơn giản, với đoạn mã này, chúng ta sẽ có thể tuần tự hóa các đối tượng Kotlin thành JSON (và giải mã hóa JSON thành các đối tượng).

Cách tạo DTO

Bây giờ hãy triển khai một MessageDtolớp dữ liệu như sau:

@Serializable
data class MessageDto(val message: String)

Về cơ bản, chúng tôi sẽ sử dụng lớp chung này để cung cấp thông điệp cho người tiêu dùng API của chúng tôi.

Làm thế nào để hiển thị các điểm cuối

Bước tiếp theo, hãy tạo một Routing.kttệp và hiển thị một điểm cuối mới:

fun Application.configureRouting() {
    routing {
        helloWorldRoute()
    }
}

fun Routing.helloWorldRoute() {
    route("/hello") {
        get {
            call.respond(HttpStatusCode.OK, MessageDto("Hello World!"))
        }
    }
}

Như bạn có thể thấy, ứng dụng của chúng tôi sẽ phản hồi với mã trạng thái 200 OK cho mỗi GETyêu cầu đến /hellođường dẫn.

Cách định cấu hình ứng dụng

Bây giờ, hãy kết hợp mọi thứ bên trong Application.kttệp:

fun main() {
    embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
        configureRouting()
        configureSerialization()
    }.start(wait = true)
}

Như bạn có thể thấy, microservice Kotlin của chúng tôi sẽ là một máy chủ nhúng Netty đang chạy trên đó localhost:8080.

Tôi thực sự khuyến khích bạn chạy ứng dụng và xác minh rằng mọi thứ đang hoạt động bình thường:

GET localhost:8080/hello

Status: 200 OK
Response Body: 
{
    "message": "Hello World!"
}

Cách triển khai Dockerfile

Cuối cùng, hãy thêm Dockerfilevào thư mục gốc của dự án của chúng tôi:

FROM openjdk:8-jdk
EXPOSE 8080:8080
RUN mkdir /app
COPY ./build/install/com.codersee.ktor-app-runner/ /app/
WORKDIR /app/bin
CMD ["./com.codersee.ktor-app-runner"]

Đảm bảo rằng thư mục được chỉ định cho các lệnh COPYCMDkhớp với giá trị của rootProject.namebên trong settings.gradle.ktstệp. Nếu tên của dự án là xyz, thì các lệnh này sẽ phản ánh rằng:

...
COPY ./build/install/xyz/ /app/
...
CMD ["./xyz"]

Cách tạo hình ảnh Docker

Tại thời điểm này, chúng tôi có mọi thứ cần thiết để xây dựng Hình ảnh Docker của mình, mà chúng tôi sẽ sử dụng sau này cho việc triển khai AWS App Runner .

Chạy lệnh Gradle

Bước đầu tiên, hãy chạy installDistlệnh với Gradle Wrapper:

./gradlew installDist

Lệnh trên có nhiệm vụ tập hợp nội dung phân phối và cài đặt nó trên máy hiện tại. Mặc dù nghe có vẻ khó khăn nhưng nó chỉ đơn giản là tạo các tệp cần thiết bên trong thư mục ./build/install/{project-name}/.

Xây dựng hình ảnh Docker

Bước tiếp theo, hãy xây dựng Hình ảnh Docker:

 docker build -t ktor-aws-runner . 

Như bạn có thể thấy, chúng tôi đã đặt tên cho hình ảnh mong muốn của mình ktor-aws-runnerbằng -ttùy chọn (một phím tắt cho --tag).

Xác minh cấu hình Docker

Cuối cùng, hãy chạy vùng chứa của chúng tôi để đảm bảo rằng microservice Kotlin của chúng tôi đang hoạt động bình thường:

docker run -p 8080:8080 ktor-aws-runner

Như một lời giải thích, -pflag ( --port) chịu trách nhiệm xuất bản cảng của container 8080tới cảng chủ 8080.

Sau khi hoàn tất, sau vài giây, chúng ta sẽ thấy thông báo sau trong nhật ký:

Application started in 0.078 seconds

Tương tự, chúng ta có thể thực hiện yêu cầu GET để kiểm tra xem điểm cuối tiếp xúc có phản hồi chính xác hay không.

Cách tạo và định cấu hình người dùng AWS

Với tất cả những điều đó đã được thực hiện, cuối cùng chúng tôi cũng có thể bắt đầu làm việc với AWS. Nhưng trước khi có thể đẩy Docker Image của mình, chúng ta cần đảm bảo rằng chúng ta đã cài đặt AWS CLI trên máy cục bộ của mình.

Chúng ta có thể làm điều đó một cách dễ dàng với lệnh dưới đây:

 aws --version
 
 # Result:
 aws-cli/2.5.3 Python/3.9.11 Windows/10 exe/AMD64 prompt/off

Kết quả trên cho thấy rằng mọi thứ đã được thiết lập chính xác. Tuy nhiên, nếu chúng tôi muốn cài đặt hoặc cập nhật CLI, thì AWS sẽ gửi một bài viết thực sự tốt về vấn đề đó trong tài liệu chính thức của họ .

Ngoài ra, chúng tôi phải có quyền truy cập vào Đám mây AWS từ máy tính của mình - và đó là những gì chúng tôi sẽ thiết lập trong bước này.

Để thiết lập quyền truy cập, hãy đăng nhập vào Bảng điều khiển quản lý AWS và điều hướng đến tính năng Người dùng của Bảng điều khiển IAM . Chúng tôi có thể làm điều đó một cách dễ dàng với thanh tìm kiếm ở trên cùng:

Hình ảnh hiển thị kết quả tìm kiếm cho truy vấn của người dùng trong Bảng điều khiển quản lý AWS

Trên trang tiếp theo, hãy nhấp vào nút Thêm người dùng :

Hình ảnh hiển thị danh sách người dùng trống trong Bảng điều khiển AWS IAM

Sau đó, chúng tôi sẽ chỉ định Tên người dùng ưa thích cùng với khóa Truy cập - Loại thông tin xác thực truy cập có lập trình :

Hình ảnh hiển thị tên người dùng và các tùy chọn loại truy cập AWS cho người dùng mới

Với những cài đặt này, chúng tôi sẽ có thể truy cập AWS bằng cách sử dụng kết hợp khóa truy cập và bí mật.

Sau khi hoàn tất, hãy nhấn nút Tiếp theo . Trên trang này, chúng tôi phải chọn nhóm cho người dùng của chúng tôi. Với mục đích của hướng dẫn này, hãy tạo một cái mới, bằng cách sử dụng nút hiển thị bên dưới:

Hình ảnh hiển thị các quyền và cài đặt ranh giới quyền cho người dùng mới

Tiếp theo, hãy chỉ định tên Nhóm ( admin-grouptrong trường hợp của tôi) trong phương thức và chọn AdministratorAccess :

Để đơn giản, chúng ta sẽ sử dụng AdministratorAccess. Nhưng trong các tình huống thực tế, chúng ta nên luôn tuân thủ Nguyên tắc Ít Đặc quyền.

Hình ảnh hiển thị tên nhóm mới với chính sách đã chọn- AdministratorAccess

Sau khi nhóm được tạo, hãy nhấn nút Tiếp theo một lần nữa:

Hình ảnh hiển thị các nhóm hiện có và nhóm quản trị viên đã chọn

Trên trang tiếp theo, chúng tôi có tùy chọn thêm thẻ tùy chỉnh dưới dạng cặp khóa-giá trị.

Nhưng chúng ta sẽ không cần chúng hôm nay, vì vậy chúng ta chỉ cần bỏ qua trang này:

Hình ảnh hiển thị biểu mẫu thêm thẻ (tùy chọn)

Cuối cùng, chúng tôi sẽ được chuyển hướng đến trang Xem lại , nơi chúng tôi có thể xác thực các bước trước đó của mình:

Hình ảnh trình bày Xem lại chi tiết người dùng mới

Như bạn có thể thấy, mọi thứ đều ổn, vì vậy hãy nhấp vào Tạo người dùng :

Hình ảnh hiển thị người dùng đã tạo

Người dùng đã được tạo thành công, vì vậy cuối cùng chúng tôi có thể nhập khóa truy cập và khóa bí mật của mình.

Hãy nhớ rằng khóa truy cập và khóa bí mật là những dữ liệu có tính bảo mật cao và bạn không bao giờ được chia sẻ chúng với bất kỳ ai!

Hãy nhấp vào nút Tải xuống .csv và tìm nạp tệp. Cá nhân tôi đã đặt tên cho nó some_user_credentials.csv, nhưng hãy chọn bất kỳ tên nào bạn thích (và ghi nhớ nó :)).

Tiếp theo, hãy điều hướng đến thư mục tải xuống và chạy lệnh sau:

 aws configure import --csv file://some_user_credentials.csv
 
 # Result:
 Successfully imported 1 profile(s)

Với thông báo trên, chúng ta có thể mong đợi rằng mọi thứ đã được thiết lập chính xác. Ngoài ra, chúng tôi có thể xác minh rằng một tệp mới được gọi là credentialsđã được tạo (hoặc cập nhật) bên trong thư mục .aws.

Nếu bạn đang sử dụng Windows thì đường dẫn của bạn sẽ là   C:\Users\[your_user_name]\.aws:

[some-admin]
aws_access_key_id = [your access key id] 
aws_secret_access_key = [your secret] 

Cách đẩy Hình ảnh Docker sang ECR

Tại thời điểm này, CLI của chúng tôi đã được chuẩn bị đúng cách, vì vậy chúng tôi có thể học cách đẩy Hình ảnh Docker cục bộ của chúng tôi vào Cơ quan đăng ký vùng chứa đàn hồi .

Bước đầu tiên, hãy quay lại Bảng điều khiển quản lý và nhập sổ đăng ký vùng chứa vào thanh tìm kiếm:

Hình ảnh hiển thị kết quả tìm kiếm cho truy vấn 'đăng ký vùng chứa'

Hãy nhấp vào Đăng ký vùng chứa đàn hồi và trên trang tiếp theo, nút Tạo kho lưu trữ . Trên trang tiếp theo, hãy chọn một kho lưu trữ Riêng tư và chỉ định tên cho nó:

Hình ảnh hiển thị tạo cài đặt chung của kho lưu trữ

Đối với phần còn lại của cài đặt, hãy để các giá trị mặc định, giống như bên dưới:

Hình ảnh hiển thị cài đặt quét và mã hóa hình ảnh

Cuối cùng, hãy nhấn nút Tạo kho lưu trữ .

Sau đó, chúng tôi sẽ được chuyển hướng đến danh sách Kho lưu trữ riêng, hiện chứa kho lưu trữ mới được tạo của chúng tôi:

Hình ảnh trình bày kho lưu trữ riêng với một mục- my-ktor-registry trong danh sách

Hãy sao chép URI và chỉ định lệnh sau trong thiết bị đầu cuối trên máy cục bộ của chúng tôi:

docker tag ktor-aws-runner:latest [your_registry_uri]:latest

# Example: docker tag ktor-aws-runner:latest 111111111111.dkr.ecr.us-east-1.amazonaws.com/my-ktor-registry:latest

Tại sao chúng ta cần điều đó? Về cơ bản, khi làm việc với Docker , chúng ta cần gắn thẻ hình ảnh với máy chủ đăng ký và cổng (nếu cần) để đẩy chúng vào bất kỳ kho lưu trữ riêng tư nào.

Sau khi hoàn tất, hãy xác thực với sổ đăng ký Amazon ECR:

aws ecr get-login-password --profile some-admin --region us-east-1 | docker login --username AWS --password-stdin [your registry URI]

# Result:
Login Succeeded

Sau đó, chúng ta có thể chạy git pushlệnh để đẩy hình ảnh sang ECR:

docker push [your_tagged_image] 

# Example: docker push 111111111111.dkr.ecr.us-east-1.amazonaws.com/my-ktor-registry:latest

Tùy thuộc vào kết nối của bạn, có thể mất một chút thời gian, nhưng cuối cùng, chúng ta sẽ thấy danh sách cập nhật trong kho lưu trữ của chúng tôi:

Hình ảnh hiển thị hình ảnh đăng ký my-ktor với một mục- mới nhất trong danh sách

Cách triển khai ứng dụng lên AWS App Runner

Bây giờ chúng tôi có mọi thứ chúng tôi cần để chia sẻ microservice Kotlin của chúng tôi với thế giới :)

Hãy quay lại Bảng điều khiển quản lý và tìm kiếm người chạy ứng dụng:

Hình ảnh trình bày kết quả tìm kiếm cho truy vấn trình chạy ứng dụng

Trên trang tiếp theo, hãy nhấn nút Tạo dịch vụ .

Đối với cấu hình Nguồn, hãy chọn sổ đăng ký Vùng chứa cùng với Amazon ECR :

Hình ảnh trình bày cài đặt nguồn và triển khai để triển khai mới

Như bạn có thể nhận thấy, AWS App Runner có thể triển khai các dịch vụ trực tiếp từ kho mã nguồn. Nếu bạn quan tâm đến cấu hình như vậy, chỉ cần liên hệ với tôi qua email (liên hệ với [at] codersee [dot] com).

Tiếp theo, hãy nhấp vào Duyệt và chọn hình ảnh đã tạo trước đó :

Hình ảnh trình bày kho hình ảnh đã chọn và thẻ hình ảnh

Hãy nhấp vào tiếp tục và đối với cài đặt Triển khai, hãy chọn Thủ công và Tạo vai trò dịch vụ mới:

Hình ảnh hiển thị kích hoạt triển khai, vai trò Truy cập ECR và tên vai trò Dịch vụ

Tên vai trò không quan trọng trong hướng dẫn này, vì vậy chúng tôi có thể chỉ định bất kỳ giá trị nào.

Bước tiếp theo, hãy nhấp vào Tiếp theo và trên trang tiếp theo, hãy cung cấp tên Dịch vụ cùng với thông tin CPU , Bộ nhớCổng :

19

Hình ảnh trình bày Tên dịch vụ, cpu, bộ nhớ, các biến môi trường, cổng và cài đặt cấu hình bổ sung

Như bạn có thể thấy, chúng tôi đã chọn kết hợp khả dụng tối thiểu (và đó là điều tôi khuyên bạn nên làm).

Nếu chúng tôi muốn chỉ định một số biến môi trường bổ sung hoặc lệnh Bắt đầu tùy chỉnh, thì trang này cho phép chúng tôi làm như vậy. Nhưng chúng tôi sẽ không cần bất kỳ biến môi trường nào và chúng tôi đã thêm lệnh bắt đầu vào Docker Image của chúng tôi, vì vậy hãy để nguyên như vậy.

Trên trang Tự động điều chỉnh tỷ lệ, chọn Cấu hình tùy chỉnh :

Hình ảnh hiển thị cài đặt chia tỷ lệ tự động với bộ cấu hình tùy chỉnh

Tiếp theo, hãy tạo một cấu hình mới có tên là cấu hình của tôi :

Hiển thị hình ảnh thêm phương thức cấu hình tùy chỉnh tỷ lệ tự động

Như tôi đã đề cập ở phần đầu, AWS App Runner xử lý rất nhiều thứ. Một trong số đó là tính năng tự động mở rộng quy mô. Mặc dù đó là một tính năng tuyệt vời, chúng tôi phải giới hạn nó theo sở thích của mình và luôn nhớ rằng nhiều tài nguyên hơn đồng nghĩa với chi phí cao hơn.

Như bạn có thể thấy ở trên, cấu hình ví dụ này sẽ không mở rộng Kotlin Microservice của chúng tôi . Tuy nhiên, nếu chúng tôi tăng kích thước Tối đa, thì một phiên bản mới sẽ được tạo mỗi khi số lượng yêu cầu đồng thời tăng lên 10.

Hãy thêm cấu hình ở trên và để mặc định phần còn lại của các mục. Sau khi chúng tôi nhấp vào Tiếp theo, chúng tôi sẽ thấy trang Đánh giá với tóm tắt triển khai.

Trên trang này, hãy nhấp vào Create and Deploynút, nút này sẽ bắt đầu quá trình triển khai:

Hình ảnh giới thiệu đã bắt đầu quy trình triển khai AWS App Runner

Hình ảnh trình bày sự kiện nhật ký triển khai được gọi là Tạo dịch vụ

Và một lần nữa, quá trình này có thể mất vài phút. Sau khi kết thúc, trạng thái sẽ thay đổi từ Operation in progressthành Runningvà chúng tôi sẽ có thể kiểm tra API Ktor REST của mình.

Giống như trước đây, hãy kiểm tra GET /hellođiểm cuối. Nhưng lần này, với tư cách là tên máy chủ của microservice của chúng tôi, chúng tôi cần sử dụng giá trị từ Default domain:

#Example: 

GET https://aaaaaaaaaa.us-east-1.awsapprunner.com/hello

Status: 200 OK
Response Body: 
{
    "message": "Hello World!"
}

🛑 Thông báo quan trọng

Hãy nhớ xóa tất cả các tài nguyên chúng tôi đã tạo hôm nay để bạn không bị tính phí cho chúng.

Thực sự rất dễ quên tất cả những thứ chúng tôi tạo ra khi học AWS Cloud và tại một số điểm, bạn có thể vượt quá hạn ngạch miễn phí của mình. Vì vậy, nó là một thực hành tốt để loại bỏ tất cả những điều đó.

Tóm lược

Và đó là tất cả cho hướng dẫn này về cách triển khai Kotlin Microservice lên Đám mây AWS với AWS App Runner. Tôi thực sự hy vọng rằng sau khi làm theo hướng dẫn này, bạn có thể dễ dàng triển khai các ứng dụng của mình lên Amazon Cloud.

Nguồn: https://www.freecodecamp.org/news/kotlin-aws-app-runner/

#kotlin #microservice #aws 

What is GEEK

Buddha Community

Cách Triển Khai Kotlin Microservice Tới AWS Với App Runner
Thai  Son

Thai Son

1652509440

Cách Triển Khai Kotlin Microservice Tới AWS Với App Runner

Chào mọi người. Trong hướng dẫn từng bước này, tôi muốn chỉ cho bạn cách triển khai Kotlin Microservice bằng Docker và AWS App Runner.

Chúng ta sẽ cùng nhau tìm hiểu:

  • AWS App Runner chính xác là gì?
  • cách định cấu hình Giao diện dòng lệnh AWS trên máy cục bộ của bạn
  • cách đẩy hình ảnh Docker vào Amazon Elastic Container Registry (ECR)
  • và cuối cùng, cách triển khai ứng dụng được tích hợp của chúng tôi với AWS App Runner

Tôi biết, nó có vẻ như là một khối lượng công việc lớn. Nhưng tôi tin rằng bạn sẽ thấy nó có thể đơn giản như thế nào với ngăn xếp công nghệ ở trên.

Điều kiện tiên quyết

Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt Docker trên máy cục bộ của mình. Chúng tôi sẽ cần phải chứa ứng dụng của mình.

Nếu bạn không có Docker, thì tài liệu Docker chính thức sẽ giúp bạn thiết lập nó trong vài phút.

Chính xác thì AWS App Runner là gì?

Trước tiên, hãy dành vài phút để hiểu chính xác AWS App Runner là gì.

Nói một cách đơn giản, đây là một dịch vụ được quản lý hoàn toàn cho phép bạn xây dựng và triển khai các ứng dụng web và API được chứa trong vùng một cách dễ dàng.

Nó xử lý rất nhiều thứ, như cân bằng tải lưu lượng truy cập hoặc mở rộng quy mô, giúp các nhà phát triển như bạn và tôi tập trung vào mã.

AWS App Runner đôi khi là một lựa chọn tuyệt vời khi tạo bản demo hoặc bằng chứng về khái niệm, nhưng nó cũng đáng xem xét đối với các nhóm nhỏ hơn mà không có người chuyên dụng làm việc trên cơ sở hạ tầng.

Cách tạo aSimple Kotlin Microservice

Như đã nói, hãy chuẩn bị một API REST đơn giản bằng cách sử dụng Kotlin và Ktor.

Nếu bạn không quan tâm đến việc triển khai Ktor, thì bạn có thể chỉ cần sao chép kho lưu trữ GitHub này và chuyển sang bước Cách tạo hình ảnh Docker .

Nếu bạn đang sử dụng IntelliJ IDEA Ultimate Edition, thì bạn có thể tạo dự án Ktor bằng ứng dụng. Nếu không, bạn có thể sử dụng công cụ Ktor Project Generator và tải dự án xuống máy cục bộ của mình.

Bất kể lựa chọn của bạn là gì, hãy đảm bảo nhập các plugin sau:

  • Nội dung thương lượng
  • kotlinx.serialization
  • Lộ trình

Cách cấu hình Serialization

Sau khi bạn đã nhập dự án, hãy tạo Serialization.kttệp và đăng ký application/jsonloại nội dung cho tính năng Thương lượng nội dung:

fun Application.configureSerialization() {
    install(ContentNegotiation) {
        json()
    }
}

Nói một cách đơn giản, với đoạn mã này, chúng ta sẽ có thể tuần tự hóa các đối tượng Kotlin thành JSON (và giải mã hóa JSON thành các đối tượng).

Cách tạo DTO

Bây giờ hãy triển khai một MessageDtolớp dữ liệu như sau:

@Serializable
data class MessageDto(val message: String)

Về cơ bản, chúng tôi sẽ sử dụng lớp chung này để cung cấp thông điệp cho người tiêu dùng API của chúng tôi.

Làm thế nào để hiển thị các điểm cuối

Bước tiếp theo, hãy tạo một Routing.kttệp và hiển thị một điểm cuối mới:

fun Application.configureRouting() {
    routing {
        helloWorldRoute()
    }
}

fun Routing.helloWorldRoute() {
    route("/hello") {
        get {
            call.respond(HttpStatusCode.OK, MessageDto("Hello World!"))
        }
    }
}

Như bạn có thể thấy, ứng dụng của chúng tôi sẽ phản hồi với mã trạng thái 200 OK cho mỗi GETyêu cầu đến /hellođường dẫn.

Cách định cấu hình ứng dụng

Bây giờ, hãy kết hợp mọi thứ bên trong Application.kttệp:

fun main() {
    embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
        configureRouting()
        configureSerialization()
    }.start(wait = true)
}

Như bạn có thể thấy, microservice Kotlin của chúng tôi sẽ là một máy chủ nhúng Netty đang chạy trên đó localhost:8080.

Tôi thực sự khuyến khích bạn chạy ứng dụng và xác minh rằng mọi thứ đang hoạt động bình thường:

GET localhost:8080/hello

Status: 200 OK
Response Body: 
{
    "message": "Hello World!"
}

Cách triển khai Dockerfile

Cuối cùng, hãy thêm Dockerfilevào thư mục gốc của dự án của chúng tôi:

FROM openjdk:8-jdk
EXPOSE 8080:8080
RUN mkdir /app
COPY ./build/install/com.codersee.ktor-app-runner/ /app/
WORKDIR /app/bin
CMD ["./com.codersee.ktor-app-runner"]

Đảm bảo rằng thư mục được chỉ định cho các lệnh COPYCMDkhớp với giá trị của rootProject.namebên trong settings.gradle.ktstệp. Nếu tên của dự án là xyz, thì các lệnh này sẽ phản ánh rằng:

...
COPY ./build/install/xyz/ /app/
...
CMD ["./xyz"]

Cách tạo hình ảnh Docker

Tại thời điểm này, chúng tôi có mọi thứ cần thiết để xây dựng Hình ảnh Docker của mình, mà chúng tôi sẽ sử dụng sau này cho việc triển khai AWS App Runner .

Chạy lệnh Gradle

Bước đầu tiên, hãy chạy installDistlệnh với Gradle Wrapper:

./gradlew installDist

Lệnh trên có nhiệm vụ tập hợp nội dung phân phối và cài đặt nó trên máy hiện tại. Mặc dù nghe có vẻ khó khăn nhưng nó chỉ đơn giản là tạo các tệp cần thiết bên trong thư mục ./build/install/{project-name}/.

Xây dựng hình ảnh Docker

Bước tiếp theo, hãy xây dựng Hình ảnh Docker:

 docker build -t ktor-aws-runner . 

Như bạn có thể thấy, chúng tôi đã đặt tên cho hình ảnh mong muốn của mình ktor-aws-runnerbằng -ttùy chọn (một phím tắt cho --tag).

Xác minh cấu hình Docker

Cuối cùng, hãy chạy vùng chứa của chúng tôi để đảm bảo rằng microservice Kotlin của chúng tôi đang hoạt động bình thường:

docker run -p 8080:8080 ktor-aws-runner

Như một lời giải thích, -pflag ( --port) chịu trách nhiệm xuất bản cảng của container 8080tới cảng chủ 8080.

Sau khi hoàn tất, sau vài giây, chúng ta sẽ thấy thông báo sau trong nhật ký:

Application started in 0.078 seconds

Tương tự, chúng ta có thể thực hiện yêu cầu GET để kiểm tra xem điểm cuối tiếp xúc có phản hồi chính xác hay không.

Cách tạo và định cấu hình người dùng AWS

Với tất cả những điều đó đã được thực hiện, cuối cùng chúng tôi cũng có thể bắt đầu làm việc với AWS. Nhưng trước khi có thể đẩy Docker Image của mình, chúng ta cần đảm bảo rằng chúng ta đã cài đặt AWS CLI trên máy cục bộ của mình.

Chúng ta có thể làm điều đó một cách dễ dàng với lệnh dưới đây:

 aws --version
 
 # Result:
 aws-cli/2.5.3 Python/3.9.11 Windows/10 exe/AMD64 prompt/off

Kết quả trên cho thấy rằng mọi thứ đã được thiết lập chính xác. Tuy nhiên, nếu chúng tôi muốn cài đặt hoặc cập nhật CLI, thì AWS sẽ gửi một bài viết thực sự tốt về vấn đề đó trong tài liệu chính thức của họ .

Ngoài ra, chúng tôi phải có quyền truy cập vào Đám mây AWS từ máy tính của mình - và đó là những gì chúng tôi sẽ thiết lập trong bước này.

Để thiết lập quyền truy cập, hãy đăng nhập vào Bảng điều khiển quản lý AWS và điều hướng đến tính năng Người dùng của Bảng điều khiển IAM . Chúng tôi có thể làm điều đó một cách dễ dàng với thanh tìm kiếm ở trên cùng:

Hình ảnh hiển thị kết quả tìm kiếm cho truy vấn của người dùng trong Bảng điều khiển quản lý AWS

Trên trang tiếp theo, hãy nhấp vào nút Thêm người dùng :

Hình ảnh hiển thị danh sách người dùng trống trong Bảng điều khiển AWS IAM

Sau đó, chúng tôi sẽ chỉ định Tên người dùng ưa thích cùng với khóa Truy cập - Loại thông tin xác thực truy cập có lập trình :

Hình ảnh hiển thị tên người dùng và các tùy chọn loại truy cập AWS cho người dùng mới

Với những cài đặt này, chúng tôi sẽ có thể truy cập AWS bằng cách sử dụng kết hợp khóa truy cập và bí mật.

Sau khi hoàn tất, hãy nhấn nút Tiếp theo . Trên trang này, chúng tôi phải chọn nhóm cho người dùng của chúng tôi. Với mục đích của hướng dẫn này, hãy tạo một cái mới, bằng cách sử dụng nút hiển thị bên dưới:

Hình ảnh hiển thị các quyền và cài đặt ranh giới quyền cho người dùng mới

Tiếp theo, hãy chỉ định tên Nhóm ( admin-grouptrong trường hợp của tôi) trong phương thức và chọn AdministratorAccess :

Để đơn giản, chúng ta sẽ sử dụng AdministratorAccess. Nhưng trong các tình huống thực tế, chúng ta nên luôn tuân thủ Nguyên tắc Ít Đặc quyền.

Hình ảnh hiển thị tên nhóm mới với chính sách đã chọn- AdministratorAccess

Sau khi nhóm được tạo, hãy nhấn nút Tiếp theo một lần nữa:

Hình ảnh hiển thị các nhóm hiện có và nhóm quản trị viên đã chọn

Trên trang tiếp theo, chúng tôi có tùy chọn thêm thẻ tùy chỉnh dưới dạng cặp khóa-giá trị.

Nhưng chúng ta sẽ không cần chúng hôm nay, vì vậy chúng ta chỉ cần bỏ qua trang này:

Hình ảnh hiển thị biểu mẫu thêm thẻ (tùy chọn)

Cuối cùng, chúng tôi sẽ được chuyển hướng đến trang Xem lại , nơi chúng tôi có thể xác thực các bước trước đó của mình:

Hình ảnh trình bày Xem lại chi tiết người dùng mới

Như bạn có thể thấy, mọi thứ đều ổn, vì vậy hãy nhấp vào Tạo người dùng :

Hình ảnh hiển thị người dùng đã tạo

Người dùng đã được tạo thành công, vì vậy cuối cùng chúng tôi có thể nhập khóa truy cập và khóa bí mật của mình.

Hãy nhớ rằng khóa truy cập và khóa bí mật là những dữ liệu có tính bảo mật cao và bạn không bao giờ được chia sẻ chúng với bất kỳ ai!

Hãy nhấp vào nút Tải xuống .csv và tìm nạp tệp. Cá nhân tôi đã đặt tên cho nó some_user_credentials.csv, nhưng hãy chọn bất kỳ tên nào bạn thích (và ghi nhớ nó :)).

Tiếp theo, hãy điều hướng đến thư mục tải xuống và chạy lệnh sau:

 aws configure import --csv file://some_user_credentials.csv
 
 # Result:
 Successfully imported 1 profile(s)

Với thông báo trên, chúng ta có thể mong đợi rằng mọi thứ đã được thiết lập chính xác. Ngoài ra, chúng tôi có thể xác minh rằng một tệp mới được gọi là credentialsđã được tạo (hoặc cập nhật) bên trong thư mục .aws.

Nếu bạn đang sử dụng Windows thì đường dẫn của bạn sẽ là   C:\Users\[your_user_name]\.aws:

[some-admin]
aws_access_key_id = [your access key id] 
aws_secret_access_key = [your secret] 

Cách đẩy Hình ảnh Docker sang ECR

Tại thời điểm này, CLI của chúng tôi đã được chuẩn bị đúng cách, vì vậy chúng tôi có thể học cách đẩy Hình ảnh Docker cục bộ của chúng tôi vào Cơ quan đăng ký vùng chứa đàn hồi .

Bước đầu tiên, hãy quay lại Bảng điều khiển quản lý và nhập sổ đăng ký vùng chứa vào thanh tìm kiếm:

Hình ảnh hiển thị kết quả tìm kiếm cho truy vấn 'đăng ký vùng chứa'

Hãy nhấp vào Đăng ký vùng chứa đàn hồi và trên trang tiếp theo, nút Tạo kho lưu trữ . Trên trang tiếp theo, hãy chọn một kho lưu trữ Riêng tư và chỉ định tên cho nó:

Hình ảnh hiển thị tạo cài đặt chung của kho lưu trữ

Đối với phần còn lại của cài đặt, hãy để các giá trị mặc định, giống như bên dưới:

Hình ảnh hiển thị cài đặt quét và mã hóa hình ảnh

Cuối cùng, hãy nhấn nút Tạo kho lưu trữ .

Sau đó, chúng tôi sẽ được chuyển hướng đến danh sách Kho lưu trữ riêng, hiện chứa kho lưu trữ mới được tạo của chúng tôi:

Hình ảnh trình bày kho lưu trữ riêng với một mục- my-ktor-registry trong danh sách

Hãy sao chép URI và chỉ định lệnh sau trong thiết bị đầu cuối trên máy cục bộ của chúng tôi:

docker tag ktor-aws-runner:latest [your_registry_uri]:latest

# Example: docker tag ktor-aws-runner:latest 111111111111.dkr.ecr.us-east-1.amazonaws.com/my-ktor-registry:latest

Tại sao chúng ta cần điều đó? Về cơ bản, khi làm việc với Docker , chúng ta cần gắn thẻ hình ảnh với máy chủ đăng ký và cổng (nếu cần) để đẩy chúng vào bất kỳ kho lưu trữ riêng tư nào.

Sau khi hoàn tất, hãy xác thực với sổ đăng ký Amazon ECR:

aws ecr get-login-password --profile some-admin --region us-east-1 | docker login --username AWS --password-stdin [your registry URI]

# Result:
Login Succeeded

Sau đó, chúng ta có thể chạy git pushlệnh để đẩy hình ảnh sang ECR:

docker push [your_tagged_image] 

# Example: docker push 111111111111.dkr.ecr.us-east-1.amazonaws.com/my-ktor-registry:latest

Tùy thuộc vào kết nối của bạn, có thể mất một chút thời gian, nhưng cuối cùng, chúng ta sẽ thấy danh sách cập nhật trong kho lưu trữ của chúng tôi:

Hình ảnh hiển thị hình ảnh đăng ký my-ktor với một mục- mới nhất trong danh sách

Cách triển khai ứng dụng lên AWS App Runner

Bây giờ chúng tôi có mọi thứ chúng tôi cần để chia sẻ microservice Kotlin của chúng tôi với thế giới :)

Hãy quay lại Bảng điều khiển quản lý và tìm kiếm người chạy ứng dụng:

Hình ảnh trình bày kết quả tìm kiếm cho truy vấn trình chạy ứng dụng

Trên trang tiếp theo, hãy nhấn nút Tạo dịch vụ .

Đối với cấu hình Nguồn, hãy chọn sổ đăng ký Vùng chứa cùng với Amazon ECR :

Hình ảnh trình bày cài đặt nguồn và triển khai để triển khai mới

Như bạn có thể nhận thấy, AWS App Runner có thể triển khai các dịch vụ trực tiếp từ kho mã nguồn. Nếu bạn quan tâm đến cấu hình như vậy, chỉ cần liên hệ với tôi qua email (liên hệ với [at] codersee [dot] com).

Tiếp theo, hãy nhấp vào Duyệt và chọn hình ảnh đã tạo trước đó :

Hình ảnh trình bày kho hình ảnh đã chọn và thẻ hình ảnh

Hãy nhấp vào tiếp tục và đối với cài đặt Triển khai, hãy chọn Thủ công và Tạo vai trò dịch vụ mới:

Hình ảnh hiển thị kích hoạt triển khai, vai trò Truy cập ECR và tên vai trò Dịch vụ

Tên vai trò không quan trọng trong hướng dẫn này, vì vậy chúng tôi có thể chỉ định bất kỳ giá trị nào.

Bước tiếp theo, hãy nhấp vào Tiếp theo và trên trang tiếp theo, hãy cung cấp tên Dịch vụ cùng với thông tin CPU , Bộ nhớCổng :

19

Hình ảnh trình bày Tên dịch vụ, cpu, bộ nhớ, các biến môi trường, cổng và cài đặt cấu hình bổ sung

Như bạn có thể thấy, chúng tôi đã chọn kết hợp khả dụng tối thiểu (và đó là điều tôi khuyên bạn nên làm).

Nếu chúng tôi muốn chỉ định một số biến môi trường bổ sung hoặc lệnh Bắt đầu tùy chỉnh, thì trang này cho phép chúng tôi làm như vậy. Nhưng chúng tôi sẽ không cần bất kỳ biến môi trường nào và chúng tôi đã thêm lệnh bắt đầu vào Docker Image của chúng tôi, vì vậy hãy để nguyên như vậy.

Trên trang Tự động điều chỉnh tỷ lệ, chọn Cấu hình tùy chỉnh :

Hình ảnh hiển thị cài đặt chia tỷ lệ tự động với bộ cấu hình tùy chỉnh

Tiếp theo, hãy tạo một cấu hình mới có tên là cấu hình của tôi :

Hiển thị hình ảnh thêm phương thức cấu hình tùy chỉnh tỷ lệ tự động

Như tôi đã đề cập ở phần đầu, AWS App Runner xử lý rất nhiều thứ. Một trong số đó là tính năng tự động mở rộng quy mô. Mặc dù đó là một tính năng tuyệt vời, chúng tôi phải giới hạn nó theo sở thích của mình và luôn nhớ rằng nhiều tài nguyên hơn đồng nghĩa với chi phí cao hơn.

Như bạn có thể thấy ở trên, cấu hình ví dụ này sẽ không mở rộng Kotlin Microservice của chúng tôi . Tuy nhiên, nếu chúng tôi tăng kích thước Tối đa, thì một phiên bản mới sẽ được tạo mỗi khi số lượng yêu cầu đồng thời tăng lên 10.

Hãy thêm cấu hình ở trên và để mặc định phần còn lại của các mục. Sau khi chúng tôi nhấp vào Tiếp theo, chúng tôi sẽ thấy trang Đánh giá với tóm tắt triển khai.

Trên trang này, hãy nhấp vào Create and Deploynút, nút này sẽ bắt đầu quá trình triển khai:

Hình ảnh giới thiệu đã bắt đầu quy trình triển khai AWS App Runner

Hình ảnh trình bày sự kiện nhật ký triển khai được gọi là Tạo dịch vụ

Và một lần nữa, quá trình này có thể mất vài phút. Sau khi kết thúc, trạng thái sẽ thay đổi từ Operation in progressthành Runningvà chúng tôi sẽ có thể kiểm tra API Ktor REST của mình.

Giống như trước đây, hãy kiểm tra GET /hellođiểm cuối. Nhưng lần này, với tư cách là tên máy chủ của microservice của chúng tôi, chúng tôi cần sử dụng giá trị từ Default domain:

#Example: 

GET https://aaaaaaaaaa.us-east-1.awsapprunner.com/hello

Status: 200 OK
Response Body: 
{
    "message": "Hello World!"
}

🛑 Thông báo quan trọng

Hãy nhớ xóa tất cả các tài nguyên chúng tôi đã tạo hôm nay để bạn không bị tính phí cho chúng.

Thực sự rất dễ quên tất cả những thứ chúng tôi tạo ra khi học AWS Cloud và tại một số điểm, bạn có thể vượt quá hạn ngạch miễn phí của mình. Vì vậy, nó là một thực hành tốt để loại bỏ tất cả những điều đó.

Tóm lược

Và đó là tất cả cho hướng dẫn này về cách triển khai Kotlin Microservice lên Đám mây AWS với AWS App Runner. Tôi thực sự hy vọng rằng sau khi làm theo hướng dẫn này, bạn có thể dễ dàng triển khai các ứng dụng của mình lên Amazon Cloud.

Nguồn: https://www.freecodecamp.org/news/kotlin-aws-app-runner/

#kotlin #microservice #aws 

How to Develop an Android App with Kotlin?

Do you have an idea to develop an android app using Kotlin?

Are you looking for the best Kotlin app development company in the USA? We at AppClues Infotech offering versatile mobile app development services in the USA. We provide custom mobile app development solutions as per your specific business needs with the prevailing market trending technology & features.

Hire our top-notch Kotlin app designers & developers for your project at a cost-effective price.

Our Kotlin App Development Services:
• Custom Android App Development
• Kotlin AR/VR App Development
• Kotlin App UI/UX Design
• Kotlin App QA & Testing- code Optimization
• Kotlin App Migrations
• Kotlin App Maintenance and Upgrades

For more info:
Website: https://www.appcluesinfotech.com/
Email: info@appcluesinfotech.com
Call: +1-978-309-9910

#kotlin android app development company #best kotlin android app development usa #kotlin android app development #kotlin for android app development #kotlin mobile app development service #create android app with kotlin

Top Kotlin Android App Development Company in USA

Looking for a top Kotlin Android app development company for creating an Android app project? AppClues Infotech is a top Kotlin Android app development company in USA that delivers the most scalable and efficient Kotlin app development services globally.

For more info:
Website: https://www.appcluesinfotech.com/
Email: info@appcluesinfotech.com
Call: +1-978-309-9910

#kotlin android app development company #best kotlin android app development usa #kotlin android app development #kotlin for android app development #kotlin mobile app development service #create android app with kotlin

Top-notch Kotlin App Development Company in USA

Are you looking for the best Kotlin Android App Development Company in USA? We at AppClues Infotech help to create a successful kotlin Android App with creative technology & features at competitive price.

For more info:
Website: https://www.appcluesinfotech.com/
Email: info@appcluesinfotech.com
Call: +1-978-309-9910

#kotlin android app development company #best kotlin android app development usa #kotlin android app development #kotlin for android app development #kotlin mobile app development service #create android app with kotlin

Carmen  Grimes

Carmen Grimes

1595494844

How to start an electric scooter facility/fleet in a university campus/IT park

Are you leading an organization that has a large campus, e.g., a large university? You are probably thinking of introducing an electric scooter/bicycle fleet on the campus, and why wouldn’t you?

Introducing micro-mobility in your campus with the help of such a fleet would help the people on the campus significantly. People would save money since they don’t need to use a car for a short distance. Your campus will see a drastic reduction in congestion, moreover, its carbon footprint will reduce.

Micro-mobility is relatively new though and you would need help. You would need to select an appropriate fleet of vehicles. The people on your campus would need to find electric scooters or electric bikes for commuting, and you need to provide a solution for this.

To be more specific, you need a short-term electric bike rental app. With such an app, you will be able to easily offer micro-mobility to the people on the campus. We at Devathon have built Autorent exactly for this.

What does Autorent do and how can it help you? How does it enable you to introduce micro-mobility on your campus? We explain these in this article, however, we will touch upon a few basics first.

Micro-mobility: What it is

micro-mobility

You are probably thinking about micro-mobility relatively recently, aren’t you? A few relevant insights about it could help you to better appreciate its importance.

Micro-mobility is a new trend in transportation, and it uses vehicles that are considerably smaller than cars. Electric scooters (e-scooters) and electric bikes (e-bikes) are the most popular forms of micro-mobility, however, there are also e-unicycles and e-skateboards.

You might have already seen e-scooters, which are kick scooters that come with a motor. Thanks to its motor, an e-scooter can achieve a speed of up to 20 km/h. On the other hand, e-bikes are popular in China and Japan, and they come with a motor, and you can reach a speed of 40 km/h.

You obviously can’t use these vehicles for very long commutes, however, what if you need to travel a short distance? Even if you have a reasonable public transport facility in the city, it might not cover the route you need to take. Take the example of a large university campus. Such a campus is often at a considerable distance from the central business district of the city where it’s located. While public transport facilities may serve the central business district, they wouldn’t serve this large campus. Currently, many people drive their cars even for short distances.

As you know, that brings its own set of challenges. Vehicular traffic adds significantly to pollution, moreover, finding a parking spot can be hard in crowded urban districts.

Well, you can reduce your carbon footprint if you use an electric car. However, electric cars are still new, and many countries are still building the necessary infrastructure for them. Your large campus might not have the necessary infrastructure for them either. Presently, electric cars don’t represent a viable option in most geographies.

As a result, you need to buy and maintain a car even if your commute is short. In addition to dealing with parking problems, you need to spend significantly on your car.

All of these factors have combined to make people sit up and think seriously about cars. Many people are now seriously considering whether a car is really the best option even if they have to commute only a short distance.

This is where micro-mobility enters the picture. When you commute a short distance regularly, e-scooters or e-bikes are viable options. You limit your carbon footprints and you cut costs!

Businesses have seen this shift in thinking, and e-scooter companies like Lime and Bird have entered this field in a big way. They let you rent e-scooters by the minute. On the other hand, start-ups like Jump and Lyft have entered the e-bike market.

Think of your campus now! The people there might need to travel short distances within the campus, and e-scooters can really help them.

How micro-mobility can benefit you

benefits-micromobility

What advantages can you get from micro-mobility? Let’s take a deeper look into this question.

Micro-mobility can offer several advantages to the people on your campus, e.g.:

  • Affordability: Shared e-scooters are cheaper than other mass transportation options. Remember that the people on your campus will use them on a shared basis, and they will pay for their short commutes only. Well, depending on your operating model, you might even let them use shared e-scooters or e-bikes for free!
  • Convenience: Users don’t need to worry about finding parking spots for shared e-scooters since these are small. They can easily travel from point A to point B on your campus with the help of these e-scooters.
  • Environmentally sustainable: Shared e-scooters reduce the carbon footprint, moreover, they decongest the roads. Statistics from the pilot programs in cities like Portland and Denver showimpressive gains around this key aspect.
  • Safety: This one’s obvious, isn’t it? When people on your campus use small e-scooters or e-bikes instead of cars, the problem of overspeeding will disappear. you will see fewer accidents.

#android app #autorent #ios app #mobile app development #app like bird #app like bounce #app like lime #autorent #bird scooter business model #bird scooter rental #bird scooter rental cost #bird scooter rental price #clone app like bird #clone app like bounce #clone app like lime #electric rental scooters #electric scooter company #electric scooter rental business #how do you start a moped #how to start a moped #how to start a scooter rental business #how to start an electric company #how to start electric scooterrental business #lime scooter business model #scooter franchise #scooter rental business #scooter rental business for sale #scooter rental business insurance #scooters franchise cost #white label app like bird #white label app like bounce #white label app like lime