0

Xây dựng ứng dụng Ruby trên môi trường App Engine linh hoạt

Quickstart này sẽ chỉ cho bạn làm thế nào để tạo ra một App Enginee nhỏ hiển thị những tin nhắn nhỏ.

Trước khi bắt đầu

Trước khi chạy và deploy ví dụ này, bạn hãy thực hiện theo các bước sau:

  1. Sử dụng Cloud Platform Console để tạo project Cloud Platform mới, tạo một ứng dụng App Engine và nhớ phải thanh toán: Đi đến App engine Khi tạo App Engine, hãy chọn vùng miền mà bạn muốn đặt ứng dụng App Engine và sau đấy tiến hành thanh toán.
  2. Cài đặt những thứ bắt buộc sau trên máy tính: a. Tải về và cài đặt Git b. Tải về và cài đặt Google Cloud SDK và sau đó khởi tạo công cụ gcloud: Tải SDK
  3. Ngoài ra: Bạn có thể sử dụng Google Cloud Shell, nó có sẵn Git và Cloud SDK đã được cài đặt và thêm nhiều tính năng khác, chẳng hạn như hỗ trợ ngôn ngữ và editor code. Sau khi Google Cloud Shell được khởi chạy, bạn có thể thực hiện phần còn lại của hướng dẫn này và thực hiện các lệnh của mình trong Cloud Shell.

Quickstart trình diễn một ứng dụng Ruby đơn giản được viết bằng framework Sinatra có thể được deploy lên App Engine. Mặc dù ví dụ này sử dụng Sinatra, bạn có thể sử dụng các framework khác như Ruby on Rails.

Tải ứng dụng Hello World

Chúng tôi đã tạo một ứng dụng Hello World đơn giản bằng Ruby để bạn có thể deploying lên môi trường App Engine linh hoạt. Bạn làm theo các bước sau, dùng dòng lệnh để tải Hello World về máy tính của bạn
Tải xuống ứng dụng ví dụ và điều hướng đến thư mục của ứng dụng:

  1. Clone ví dụ ứng dụng Hello World vào máy tính của bạn
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples

Ngoài ra, bạn cũng có thể tải xuống ví dụ dưới dạng tệp zip và giải nén nó. 2. Thay đổi thư mục chứa code ví dụ:

cd ruby-docs-samples/appengine/hello_world

Chạy Hello World trên máy tính cá nhân của bạn

Để chạy ứng dụng Hello World trên máy tính cá nhân của bạn

  1. Cài đặt các dependency cho project bằng lệnh sau:
bundle install
  1. Khởi động máy chủ web local:
bundle exec ruby app.rb -p 8080
  1. Mở trình duyệt của bạn và nhập vào địa chỉ sau: http://localhost:8080 Bạn sẽ nhìn thấy thông báo Hello World từ ví dụ ứng dụng được hiển thị trên trình duyệt. Trong màn hình terminal, bạn có thể chọn Ctrl+C để thoát khỏi máy chủ Web.

Deploy and chạy Hello World trên App Engine

Để deploy ứng dụng của bạn lên môi trường App Engine linh hoạt a. Deploy ứng dụng Hello World bằng cách chạy lệnh sau từ thư mục hello_world:

gcloud app deploy

b. Mở trình duyệt và xem ứng dụng tại http://YOUR_PROJECT_ID.appspot.com, bằng cách chạy lệnh sau:

gcloud app browse

Lần này, trang Web hiển thị thông báo Hello World được cung cấp bởi máy chủ web chạy trên một instance của App Engine. Xin chúc mừng bạn, bạn đã deploy thành công lên môi trường App Engine linh hoạt. Xem các phần sau để biết thêm thông tin về cách xóa liên kết tốt nhất và bạn có thể thực hiện ở các bước tiếp theo.

Xóa

Để tránh chi phí phát sinh, bạn có thể xóa các project Cloud Platform để ngừng thanh toán cho các tài nguyên được sử dụng trong project đó.

  1. Trong Cloud Platform Console, hãy truy cập trang Projects. Tới trang Projects
  2. Trong danh sách project, lựa chọn project mà bạn muốn xóa và click vào Delete project
  3. Trong dialog, gõ Project ID, click vào Shut down để xóa project

Tiếp theo

Bây giờ, bạn đã hoàn thành Hello World, bạn cần khám phá ví dụ ứng dụng tiếp theo: ứng dụng Bookshelf. Ứng dụng Bookshelf là ứng dụng web Ruby hoàn chỉnh nhưng cơ bản vẫn còn sử dụng nhiều tính năng của Cloud Platform, chẳng hạn như lưu trữ dữ liệu, xác thực, đăng nhập, pub/sub, v.v. Bắt đầu với ví dụ ứng dụng Bookshelf Để biết thêm thông tin về môi trường App Engine linh hoạt, hãy đọc tài liệu này

Xem lại code Hello World

Hello World là ứng dụng App Engine đơn giản nhất vì nó chỉ chứa một dịch vụ, chỉ có một phiên bản và tất cả code đều nằm trong thư mục gốc của ứng dụng. Phần này mô tả chi tiết từng tệp ứng dụng. app.rb Ứng dụng Hello World là một ứng dụng 1-tệp cơ bản Sinatra:

appengine/hello_world/app.rb

require "sinatra"

get "/" do
  "Hello world!"
end

app.yaml Tệp app.yaml mô tả cấu hình triển khai của một ứng dụng:

appengine/hello_world/app.yaml

runtime: ruby
env: flex
entrypoint: bundle exec ruby app.rb

Ở đây, app.yaml chỉ định thời gian chạy của ứng dụng và đặt env: flex xác định rằng ứng dụng sử dụng môi trường linh hoạt.

Gemfile

Gemfile được sử dụng để xác định các dependency của ứng dụng và Bunder được sử dụng để khai báo và cài đặt các dependency. Ứng dụng Hello World yêu cầu một Ruby gem: Sinatra

appengine/hello_world/Gemfile
source "https://rubygems.org"

gem "sinatra"

Kết luận

Bài viết này mình có dịch từ nguồn: https://cloud.google.com/ruby/getting-started/hello-world rất mong nhận được sự đóng ghóp của mọi người


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí