Thứ Bảy, 30 tháng 6, 2012

Hướng dẫn triễn khai ứng dụng trên Google Appengine

Các bạn cần đăng ký mở ứng dụng tại địa chỉ: https://appengine.google.com. Quá trình đăng ký yêu cầu bạn cung cấp cho Google 1 số điện thoại di động (đã thử nghiệm thành công với Mobi, Vina, Viettel). Trong quá trình đăng ký hãy giữ nguyên các tùy chọn mặc định, và lưu ý hãy chọn một Application Identifier sao cho ngắn gọn, đẹp và dễ nhớ. Phần tiếp theo của bài viết sẽ hướng dẫn các bạn triễn khai ứng dụng helloworld.
Mức độ khó: 1
Yêu cầu: xem qua bài viết về cách cài đặt môi trường phát triễn của app engine golang

Tôi vừa đăng kí một ứng dụng app engine ngay trước khi viết bài viết này, có identifer là open-vn, như vậy tôi có thể truy cập ứng dụng web của mình qua địa chỉ: http://open-vn.appspot.com/, địa chỉ này có thể thay đổi với một tên miền của mình.
Đã tới lúc mở chuơng trình dòng lệnh của các bạn lên, chuyễn đến thư mục gốc của appengine, trong trường hợp của tôi, tôi sẽ gõ:
cd WorkSpace/GO
Tiếp dến, chúng ta sẽ làm việc với ứng dụng helloworld, có sẵn trong thư mục demos/helloworld, điều cần làm chỉ là edit 1 dòng trong file app.yaml, dòng đầu tiên:
application: helloworld
Hãy thay helloworld với Application Identifier của bạn. lưu file lại. Và tiếp tục với khâu "dòng lệnh", chỉ hơi khác với việc chạy ứng dụng ở localhost thôi.
./appcfg.py update demos/helloworld
Nếu các bước đúng hết (không sai chính tả, sai đường dẫn v.v.), nay lần đầu tiên update app, quá trình sẽ yêu cầu bạn đăng nhập (với tài khảon google mà bạn đã đăng ký app), lưu ý khâu điền mật khẩu, hãy gõ cho chính xác, và bạn sẽ không nhìn thấy các ký tự "***" hiện ra, cứ tự tin mà gõ. Bạn có thể sẽ phải đợi một chút, tớ khi nào xuất hiện thông báo "Deployment successful." thì mọi chuyệnn đã thật sự hoàn tất. Lúc này bạn có thể truy cập ứng dụng của mình trên web được rồi.
Một chuyện tôi muốn nói tới là cách upload những file tĩnh lên host của app engine. mọi chuện vẫn là thao tác trên file app.yaml.

- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
Với ứng dụng helloworld, bạn sẽ tìm thấy đoạn code này trong app.yaml, tạm dịch từ cú pháp yaml sang Tiếng Việt sẽ như sau: "khi truy cập vào url (http://open-vn.appspot.com/)/favicon.ico, tôi sẽ nhận đuợc file favicon.ico". Đây là cách upload trong trường hợp bạn cần 1 vài file tĩnh ở thư mục gố trên web (coi địa chỉ web là một thư mục thì các file nằm ngay sau open-vn.appspot.com/ - thì ta nói nó nằm trong thư mục gốc). Trường hợp muốn upload nhiều file, hãy tạo 1 thư mục và đặt tất cả file/thư mục con vào trong thư mục đó để upload trọn bọ thư mục.
Trong ví dụ này tôi tạo 1 thư mục có tên là static, đặt nó ngang hàng với file app.yaml (đặt ngang hàng có nghĩa là đặt chung thư mục), trong thư mục static này tôi tạo thêm thư mục con có thê là images, trong thư mục images này có 1 file ảnh vietnam.png, và tôi thêm vào thông tin handlers:
- url: /static
static_dir: static
Lưu ý, thông tin cho handler này phải nằm trên handler url: /.*. Thực hiện lại quá trình update ứng dụng:
./appcfg.py update demos/helloworld
Lúc này bạn bạn có thể truy cập tới các file của mình (ví dụ http://open-vn.appspot.com/static/images/vietnam.png).

4 nhận xét:

  1. - url: /static static_dir: static
    Để cái dòng này thực sự không biết cái static nào là static nào.
    CHẳng hạn mình để tên thư mục là image thì đặt là
    - url:/image image_dir: image à

    Trả lờiXóa
  2. Với cấu hình:
    - url: /static
    static_dir: static
    Điều này có nghĩa là: đường dẫn /static/... sẽ quản lý các file trong thư mục static, đường dẫn của bạn là gì cũng đuợc, không cần trùng tên với thực mục.

    Trả lờiXóa
  3. không. Bạn hãy trả lời mình:
    khi mình tạo 2 thư mục image và static thì có phải cấu hình vầy không
    - url: /static
    static_dir: static
    - url: /image
    image_dir: image
    3 chữ static này không biết cái nào là của mình hết ;))

    Trả lờiXóa
  4. Từ "static_dir" là keyword, hiểu như tên biến, còn "static" là giá trị cảu biến đó. Từ phần liên hệ với file favico.ico cũn có thể tự7suy ra mà.

    Trả lờiXóa