2009-05-01 36 views

Trả lời

12

Mỗi ứng dụng đều có kho dữ liệu và memcache riêng (được chia sẻ giữa tất cả các phiên bản của ứng dụng đó). Có vẻ như không thể chia sẻ kho dữ liệu giữa các ứng dụng ngay bây giờ (trừ khi bạn cung cấp một số dịch vụ web cho điều đó), nhưng đó sẽ là một tính năng tốt đẹp để có, vì vậy có thể bạn cần gửi yêu cầu tính năng với Google vote for it.

Đối với tên miền, bạn có thể liên kết ứng dụng của mình với domains managed by Google Apps. Nhiều miền cho cùng một ứng dụng sẽ không có vấn đề gì (ngoại trừ các chứng chỉ SSL).

+0

Nhưng, dường như không thể sử dụng các phiên bản hoặc mô-đun khác nhau cho nhiều tên miền đó. – hiroshi

3

Mọi phiên bản của một ứng dụng đều được hỗ trợ bởi cùng một kho dữ liệu. Nếu bạn muốn giới hạn quyền truy cập cho các yêu cầu riêng lẻ, bạn sẽ cần thêm trường vào mô hình của mình để thực thi hạn chế đó. Có các móc mức thấp trong API kho dữ liệu cho loại điều này, nếu bạn muốn đi xa đến vậy.

Và có, bạn có thể thêm một ứng dụng App Engine duy nhất vào nhiều miền - ngay cả trong nhiều tài khoản Apps.

20

App Engine gần đây hỗ trợ thêm cho một tính năng gọi là module (Documents: go, python, java)

App Engine Modules (hoặc chỉ cần "Modules" sau đây) là một tính năng cho phép các nhà phát triển yếu tố lớn các ứng dụng vào các thành phần logic có thể chia sẻ các dịch vụ stateful và giao tiếp một cách an toàn. Một ứng dụng để xử lý yêu cầu của khách hàng có thể bao gồm các module riêng biệt để xử lý các nhiệm vụ khác:

  • yêu cầu API từ các thiết bị di động
  • nội bộ, yêu cầu quản trị giống như
  • Backend chế biến như đường ống dẫn thanh toán và phân tích dữ liệu

Khi bạn tạo mô-đun mới, App Engine sẽ tạo url tương ứng với tên mô-đun. Nếu bạn chỉ có một mô-đun thì tên sẽ là default. ví dụ.

  • http: // mặc định .myapp.appspot.com
  • http: // di động-frontend .myapp.appspot.com
  • http: // my-mô-đun. myapp.appspot.com

Sử dụng Domain masking, sau đó bạn có thể trực tiếp từ:

  • www.myapp.com => http: // mặc định .myapp.appspot.com
  • www.myapp-mobile.com => http: // di động-frontend .myapp.appspot.com
  • www.example.com => http: // mô-đun của tôi .myapp.appspot.com
+0

Với mẹo này, bạn sẽ mất ưu thế tốt nhất của hệ thống phiên bản. Bạn sẽ không thể chuyển trở lại (hoàn nguyên về phiên bản eralier) một cách dễ dàng khi xảy ra sự cố sau khi triển khai mới vì công tắc "Đặt làm mặc định" sẽ không thực sự làm gì do che khuất tên miền. Trong trường hợp này, việc thay đổi tên miền thậm chí còn tồi tệ hơn do sự chậm trễ lan truyền cao. Phiên bản Appengine không dành cho việc này. Đây là một hack, tôi không khuyến khích sử dụng điều này. – Lepi

+1

@Lepi, khi sử dụng các mô-đun, phiên bản bạn đặt làm mặc định sẽ được hiển thị khi truy cập url cơ sở. Ví dụ. phiên bản '1' của mô-đun' mặc định' sẽ được hiển thị tại url '1.default.myapp.com' nhưng cũng có tại' default.myapp.com'. Do đó, việc thay đổi tuyến 'mặc định' sẽ không cần thay đổi bản ghi DNS. Tôi hy vọng rằng sẽ giúp. –

3

Giải pháp của Kyle sẽ hoạt động, nhưng App Engine chưa bao giờ được thiết kế để sử dụng theo cách này. Vì vậy, nếu bạn kiến ​​trúc sư (các) ứng dụng của bạn dựa vào loại thiết lập này và Google sẽ giảm xuống vì bất kỳ lý do gì thì bạn sẽ bị làm hỏng.

2

Bạn có thể có đa nhiệm bằng cách sử dụng Namespace Java API

+0

Đừng nghĩ rằng điều này là có liên quan. OP muốn nhiều ứng dụng chia sẻ một kho dữ liệu, thay vì cùng một ứng dụng với nhiều kho dữ liệu (trong trường hợp này, không gian tên là hữu ích) –

Các vấn đề liên quan