Kết nối mongodb với heroku

Khi chúng tôi bắt đầu xây dựng các ứng dụng bản địa hơn, việc chọn các dịch vụ và công cụ phù hợp có thể khá đảo lộn. May mắn thay, khi nói đến việc chọn một dịch vụ cơ sở dữ liệu đám mây, MongoDB Atlas có thể là lựa chọn dễ dàng nhất. MongoDB Atlascó thể là sự lựa chọn dễ dàng nhất

Khi kết hợp với Heroku, một trong những giải pháp PAAS phổ biến nhất cho các nhà phát triển, bạn sẽ có thể xây dựng và khai thác các ứng dụng đám mây được quản lý đầy đủ ngay lập tức. Phần tốt nhất? . Tất cả những gì bạn cần làm là đặt chuỗi kết nối của Atlas Cluster thành biến cấu hình Heroku. Đó thực sự là tất cả những gì có với nó. Heroku, một trong những giải pháp PaaS phổ biến nhất dành cho nhà phát triển, bạn' . Phần tốt nhất? . Tất cả những gì bạn cần làm là đặt chuỗi kết nối của cụm Atlas thành biến cấu hình Heroku. Đó thực sự là tất cả để có nó.

Nếu bạn đã thuộc về MongoDB, sử dụng Atlas MongoDB với các ứng dụng đám mây của bạn là một lựa chọn tự nhiên. MongoDB Atlas là một dịch vụ cơ sở dữ liệu đám mây được quản lý đầy đủ để MongoDB tự động hóa việc quản lý các cụm MongoDB trên đám mây. Cung cấp các tính năng như sao lưu tự động, tự động chia tỷ lệ, dung sai lỗi đa AUS và bộ công cụ quản lý và phân tích đầy đủ, Atlas là DBAAs tinh vi nhất ở bất kỳ đâu, và chỉ cách đó vài bước

Để xem cách thức nhanh chóng để đứng dậy và chạy với MongoDB Atlas, chỉ cần thực hiện theo vài bước tiếp theo để thiết lập cụm miễn phí đầu tiên của bạn. Sau đó, xem bạn có thể kết nối cụm Atlas mới của mình với ứng dụng Heroku mới như thế nào bằng cách làm theo các hướng dẫn từng bước sau trong hướng dẫn này

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

Hướng dẫn này giả định như sau

  • Bạn đã thuộc về MongoDB và có các ứng dụng bằng văn bản sử dụng MongoDB

  • Bạn đã thuộc về Heroku và biết cách phát triển các ứng dụng Heroku. - Bạn đã cài đặt Heroku CLI. Heroku CLI đã cài đặt.

  • Bạn đã thuộc quyền sở hữu và đã cài đặt Git. Git đã cài đặt.

Với những giả định này trong tâm trí, hãy bắt đầu

Thiết lập cụm Atlas của bạn trong 5 bước (hoặc ít hơn. )

Bước 1. Tạo tài khoản Atlas

Nếu bạn đã tạo tài khoản MongoDB bằng địa chỉ email của mình, bạn có thể bỏ qua bước này. Đăng nhập vào tài khoản của bạn thay thế. Đăng nhập vào tài khoản của bạn để thay thế.

Bước 2. Tạo tổ chức và dự án của bạn

Sau khi đăng ký, Atlas sẽ nhắc bạn tạo một tổ chức và dự án nơi bạn có thể phát triển cụm từ của mình

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Bước 3. Triển khai cụm từ đầu tiên của bạn

Bây giờ bạn sẽ có thể chọn từ một loạt các cụm tùy chọn tùy chọn. Đối với hướng dẫn này, chúng tôi sẽ chọn tùy chọn cụm từ được chia sẻ, đó là cụm từ miễn phí của Atlas. Truy cập vào "Tạo cụm từ" trong tùy chọn cụm từ được chia sẻ

Trên trang tiếp theo, bạn sẽ được nhắc chọn một vài tùy chọn cho cụm từ của mình

Chọn nơi bạn muốn khai thác cụm từ của mình. Điều quan trọng là chọn khu vực có sẵn gần nhất với ứng dụng của bạn và lý tưởng là cùng một khu vực, để giảm thiểu mức độ khởi động. Trong trường hợp của chúng tôi, hãy chọn khu vực N. Virginia (US-East-1), với AWS là nhà cung cấp đám mây đám mây của chúng tôi (vì chúng tôi đang khai thác trên Heroku và đó là nơi Heroku lưu trữ cơ sở hạ tầng của nó)

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Tại đây, bạn sẽ thấy các cụm từ có sẵn tùy chọn cụm từ được chia sẻ. Bạn có thể xem so sánh về RAM, lưu trữ, VCPU và giá cơ sở giữa các tầng để giúp bạn chọn đúng tầng. Đối mặt với hướng dẫn của chúng tôi, hãy để lớp Sandbox M0 mặc định được chọn

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Tùy thuộc vào tầng bạn chọn, một số tùy chọn bổ sung có thể có sẵn cho bạn. Điều này bao gồm các phiên bản MongoDB mà bạn muốn khai thác và, cho các cụm từ M2 và các tùy chọn sao lưu. Đối diện với hướng dẫn này, chọn phiên bản mới nhất, MongoDB 4. 4

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Cuối cùng, bạn có thể đặt tên cho cụm từ của bạn. Hãy nhớ rằng khi một cụm từ của bạn được tạo ra, bạn sẽ không thể thay đổi nó. Tại đây, chúng tôi sẽ đặt tên cho cụm từ leaflix-east của chúng tôi để giúp chúng tôi biết dự án và khu vực mà cụm từ này sẽ hỗ trợ. ______0 để giúp chúng tôi biết cụm này sẽ hỗ trợ dự án và khu vực nào.

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

That is it. Hãy nhớ xem lại các tùy chọn của bạn lần cuối trước khi nhấp vào nút "Tạo cụm từ"

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Bước 4. Tạo người dùng cơ sở dữ liệu cho cụm từ của bạn

Atlas yêu cầu khách hàng xác thực là người sử dụng cơ sở dữ liệu MongoDB để truy cập các cụm từ, vì vậy hãy tạo một cách thực sự nhanh chóng cho các cụm từ của bạn

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Như bạn có thể thấy trong GIF ở trên, việc tạo người dùng cơ sở dữ liệu đơn giản hơn. Đầu tiên điều hướng đến phần "truy cập cơ sở dữ liệu" (nằm trong "Bảo mật" trong thanh điều hướng bên trái). Lướt vào "Tạo người dùng cơ sở dữ liệu mới". Lời nói sẽ xuất hiện ở nơi bạn có thể chọn phương thức xác thực và đặc quyền cho cơ sở dữ liệu của người dùng này

Chọn phương thức xác thực "Mật khẩu" và cung cấp cho người dùng này tên người dùng và mật khẩu. Để thuận tiện, bạn thậm chí có thể tự động phát triển mật khẩu an toàn ngay lập tức trong Atlas, mà chúng tôi rất khuyến khích

Sau khi tự động phát mật khẩu của bạn, hãy nhớ nhấp vào Sao chép và lưu trữ ở nơi an toàn ngay bây giờ. Chúng tôi sẽ cần nó sau khi kết nối với cụm từ của chúng tôi

Chọn một vai trò chơi hợp nhất cho người dùng này. Đối với hướng dẫn này, tôi đang chọn "Atlas Admin", cung cấp nhiều đặc quyền nhất

Cuối cùng, nhấp vào nút "Thêm người dùng". Bạn đã tạo người dùng cơ sở dữ liệu đầu tiên của cụm từ

Bước cuối cùng trong cụm thiết lập của bạn là chọn địa chỉ IP nào được phép truy cập nó. Để nhanh chóng đứng dậy, hãy đặt cụm từ của bạn để cho phép truy cập từ bất kỳ đâu

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Xin chúc mừng. Bạn chỉ cần thiết lập thành công cụm từ Atlas của mình

Lưu ý. Bạn không thể cho phép loại truy cập này trong môi trường sản xuất. Thay vào đó, bạn sẽ muốn xác định địa chỉ IP chính xác mà bạn biết ứng dụng của bạn sẽ được lưu trữ và xác định rõ ràng địa chỉ IP hoặc phạm vi IP, nên có quyền truy cập vào cụm từ của bạn. Sau khi thiết lập ứng dụng Heroku của bạn, hãy làm theo các bước trong phần "Định cấu hình địa chỉ IP Heroku trong Atlas" bên dưới để xem cách bổ sung địa chỉ IP phù hợp cho ứng dụng Heroku của bạn

Định cấu hình Heroku để chỉ vào cụm Atlas MongoDB bằng cách sử dụng Cấu hình Vars

Nhanh chóng thiết lập cụm Atlas của chúng tôi khá thú vị, nhưng chúng tôi nghĩ rằng bạn sẽ thấy phần này thậm chí còn kỳ lạ hơn

Được hỗ trợ bởi Atlas, các ứng dụng Heroku rất đơn giản để thiết lập. Tất cả những gì bạn cần làm là tạo một cấu hình cấp ứng dụng VAR giữ chuỗi kết nối của cụm từ của bạn. Sau khi thiết lập, bạn có thể truy cập một cách an toàn cấu hình đó trong ứng dụng của mình

Bước 1. Đăng nhập vào Heroku CLI

Lệnh này mở trình duyệt web của bạn đến trang đăng nhập Heroku. Nếu bạn đã đăng nhập, chỉ cần nhấp vào nút "Đăng nhập". Ngoài ra, bạn có thể sử dụng cờ -i để đăng nhập thông tin qua dòng lệnh

Bước 2. Bản sao ứng dụng demo của tôi

Để tiếp tục hướng dẫn này, tôi đã tạo một nút demo ứng dụng sử dụng Atlas MongoDB và là một ứng dụng tôi muốn phát triển khai thác cho Heroku. Sao chép nó, sau đó điều hướng đến thư mục của nó. ứng dụng Node demo sử dụng MongoDB Atlas và là ứng dụng tôi muốn triển khai cho Heroku. Sao chép nó, sau đó điều hướng đến thư mục của nó.

Bước 3. Create Heroku application

Như bạn có thể thấy, tôi đã đặt tên cho tôi leaflix. ______2 .

Đã nhận chuỗi kết nối cụm từ Atlas của bạn

Quay trở lại bảng điều khiển của Atlas Cluster vì chúng tôi sẽ cần lấy chuỗi kết nối của chúng tôi

Button on "Connection"

Select option "Kết nối ứng dụng của bạn"

Tại đây, bạn sẽ thấy chuỗi kết nối chúng tôi sẽ cần kết nối với cụm từ của chúng tôi. Sao chép chuỗi kết nối

Dán chuỗi vào một trình soạn thảo;

Như bạn có thể thấy, Atlas đã thuận tiện bổ sung tên người dùng của cơ sở dữ liệu mà chúng tôi đã tạo ra trước đó. Để hoàn thành chuỗi kết nối và làm cho nó hợp lệ, thay thế bằng mật khẩu của người dùng cơ sở dữ liệu của riêng bạn và bằng sample_mflix, đây là bộ dữ liệu mẫu ứng dụng demo của chúng tôi sẽ sử dụng. ______4 với sample_mflix , đây là tập dữ liệu mẫu mà ứng dụng demo của chúng tôi sẽ sử dụng.

💡 Nếu bạn không có mật khẩu của người dùng cơ sở dữ liệu tiện ích, hãy tự động hóa một cái mới và sử dụng nó trong chuỗi kết nối của bạn. Chỉ cần nhớ cập nhật nó nếu bạn tự động hóa nó một lần nữa. Bạn có thể tìm thấy mật khẩu bằng cách truy cập cơ sở dữ liệu > Nhấp vào "Chỉ sửa" trên cơ sở dữ liệu mong muốn > Chỉnh sửa mật khẩu > Autogenate Secure Password

Set a config mongodb_uri var

Bây giờ chúng ta đã cấu hình đúng chuỗi kết nối của mình, đã đến lúc lưu trữ nó trong biến cấu hình Heroku. Please set the connect string of my my to a configure var has name MongoDB_URI

Một số điều quan trọng cần lưu ý ở đây

  • This command is all a line

  • Vì định dạng của chuỗi kết nối của chúng tôi chứa các ký tự đặc biệt, nên cần phải bao bọc nó trong các đoạn trích dẫn

Thats all to have it. Bây giờ bạn đã thêm đúng chuỗi kết nối của Atlas Cluster dưới dạng biến cấu hình Heroku, điều đó có nghĩa là bạn có thể truy cập một cách an toàn chuỗi đó sau khi ứng dụng của bạn được phát triển cho Heroku

Ngoài ra, bạn cũng có thể thêm cấu hình này thông qua tab "Cài đặt" của ứng dụng trong bảng điều khiển Heroku. Truy cập vào ứng dụng của bạn> LEAFFFLIX> Cài đặt. Trong phần Cấu hình Vars, nhấp vào nút "Hiển thị cấu hình VARS" và thêm cấu hình var của bạn ở đó. ứng dụng > leaflix > Cài đặt. Trong phần Config Vars, nhấp vào nút "Reveal Config Vars" và thêm var cấu hình của bạn vào đó.

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Bước cuối cùng là sửa mã ứng dụng của bạn để truy cập các biến này

Kết nối ứng dụng của bạn với cụm Atlas MongoDB bằng cách sử dụng các giá trị heroku config var

Trong ứng dụng demo của chúng tôi, bạn sẽ thấy rằng chúng tôi đã mã hóa chuỗi kết nối cụm Atlas của chúng tôi. Chúng ta nên tái cấu trúc mã của mình để sử dụng biến cấu hình Heroku mà chúng ta đã tạo trước đó

Biết được điều này và biết ứng dụng của chúng tôi được viết bằng nút, chúng tôi có thể truy cập cụm Atlas của mình thông qua thuộc tính process.env, được cung cấp cho chúng tôi trong Nút. js. Trong tệp server.js, đã thay đổi hằng số URI thành this. ______8 thuộc tính, được cung cấp cho chúng tôi trong Node. js. Trong tệp ______9 , thay đổi hằng số uri thành này.

That is it. Vì chúng tôi đã thêm chuỗi kết nối cụm Atlas của chúng tôi dưới dạng cấu hình heroku, nên ứng dụng của chúng tôi sẽ có thể truy cập nó một cách an toàn sau khi nó được phát triển khai thác

Lưu tệp đó, cam kết thay đổi tệp đó, sau đó khai báo mã của bạn cho Heroku

Ứng dụng của bạn đã được khai thác. Bạn có thể kiểm tra lại để xem ít nhất một phiên bản Leflix đang chạy bằng cách sử dụng lệnh này

Nếu bạn thấy một tin nhắn cho biết leaflix-east2, bạn sẽ biết rằng ít nhất một trường hợp đang hoạt động. ______02 , bạn sẽ biết rằng ít nhất một phiên bản đang hoạt động.

Cuối cùng, hãy truy cập ứng dụng của bạn. Bạn có thể làm như vậy với lệnh hữu ích này

Nếu tất cả đều tốt, bạn sẽ thấy một cái gì đó giống như thế này

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Khi bạn nhấp vào "Cần một tiếng cười?" . Điều này xuất hiện trực tiếp từ cụm Atlas của chúng tôi và sử dụng bộ dữ liệu sample_mflix. ______5 tập dữ liệu.

Định cấu hình địa chỉ IP Heroku trong Atlas MongoDB

Chúng tôi có cụm từ của chúng tôi lên và chạy và ứng dụng của chúng tôi được phát triển khai thác cho Heroku

To help them me information through direction, ban đầu chúng tôi đã cấu hình cụm từ của mình để tiếp nhận kết nối từ bất kỳ địa chỉ IP nào. Lý tưởng nhất là bạn muốn hạn chế quyền truy cập vào ứng dụng của bạn và chỉ cần một vài cách để thực hiện điều này trên Heroku

Cách đầu tiên là sử dụng một tiện ích bổ sung để cung cấp địa chỉ IP bên ngoài tĩnh cho ứng dụng của bạn mà bạn có thể sử dụng để hạn chế quyền truy cập trong Atlas. Bạn có thể tìm thấy một số được liệt kê ở đây

Một cách khác là sử dụng khoảng không gian riêng của Heroku và sử dụng các IP bên ngoài tĩnh cho không gian của bạn. Đây là một tùy chọn trả tiền cao hơn, nhưng không yêu cầu một tiện ích bổ sung đặc biệt

Có một số tài liệu và bài viết cho thấy bạn có thể sử dụng phạm vi IP được xuất bản bởi AWS hoặc Heroku để cho phép truy cập vào IP có nguồn gốc từ khu vực AWS của bạn hoặc Heroku Dynos nằm ở khu vực đó. Mặc dù điều này là có thể, nhưng nó không được khuyến khích vì những phạm vi đó có thể thay đổi theo thời gian. Thay vào đó, chúng tôi đề xuất một trong hai phương pháp ở trên

Khi bạn có địa chỉ IP cho ứng dụng của mình, bạn có thể sử dụng chúng để định cấu hình tường lửa của bạn trong Atlas

Đi đến cụm Atlas của bạn, xóa bất kỳ phạm vi IP hiện có nào, sau đó thêm chúng vào danh sách cho phép của bạn

Hướng dẫn can heroku host mongodb? - heroku có thể lưu trữ mongodb không?

Tất nhiên, tại mọi thời điểm, bạn sẽ giao tiếp giữa ứng dụng của bạn và ATLAS cơ sở dữ liệu của bạn một cách an toàn thông qua mã hóa TLS

Kết luận

Chúng tôi đã hoàn thành khá nhiều trong một khoảng thời gian tương đối ngắn. Như một bản tóm tắt

  • Chúng tôi thiết lập và khai thác một cụm Atlas trong năm bước hoặc ít hơn

  • Chúng tôi đã tạo một biến cấu hình Heroku để lưu trữ toàn bộ chuỗi kết nối Atlas của chúng tôi, cho phép chúng tôi kết nối cụm Atlas của chúng tôi với ứng dụng Heroku của chúng tôi.

  • Chúng tôi đã học được rằng các biến cấu hình Heroku được tiếp xúc với mã ứng dụng của chúng tôi dưới dạng các biến môi trường

  • Chúng tôi đã tái sinh cấu trúc chuỗi URI được mã hóa cứng trong mã của chúng tôi để trỏ đến biến leaflix-east6 thay thế