Phát triển ứng dụng web và cơ sở dữ liệu đầu tiên của bạn trên Azure
Trong hướng dẫn này, chúng tôi sẽ triển khai một ứng dụng .NET Core đơn giản kết nối với cơ sở dữ liệu SQL. Sau đó, chúng tôi sẽ lưu trữ bằng cách sử dụng tính năng Ứng dụng web của Dịch vụ ứng dụng Azure.
Để làm theo, bạn sẽ cần cài đặt Git v2 trở lên, .NET Core và Visual Studio Code trên thiết bị của mình. Chúng tôi cũng sẽ sử dụng một ứng dụng ASP.NET Core MVC mẫu để quản lý danh sách việc cần làm.
Tạo ứng dụng web và cơ sở dữ liệu bằng cổng Azure
Để lưu trữ ứng dụng .NET Core, chúng tôi sẽ tạo một ứng dụng web mới trong cổng Azure.
- Trong cổng Azure, chọn + Tạo tài nguyên.
- Tìm kiếm Ứng dụng Web. Ngăn Ứng dụng Web mở ra. Chọn Tạo. Ngăn Tạo Ứng dụng Web sẽ mở ra.
- Tạo một Nhóm tài nguyên mới bằng cách đặt tên cho nó.
- Nhập Tên cho ứng dụng web.
- Để lại lựa chọn Xuất bản dưới dạng Mã, rồi chọn giá trị .NET Core 3.1 (LTS) cho ngăn xếp Thời gian chạy.
- Để lựa chọn hệ điều hành là Windows.
- Chọn hoặc tạo Gói dịch vụ ứng dụng.
- Chọn Xem lại + tạo, sau đó chọn Tạo.
Các dịch vụ như Ứng dụng web chạy trên các gói Dịch vụ ứng dụng Azure. Các gói Dịch vụ ứng dụng là một bản tóm tắt của các tài nguyên và tính năng, chẳng hạn như CPU và bộ nhớ, và được thể hiện trong các mức giá.
Các gói Dịch vụ ứng dụng cũng bị ràng buộc với một khu vực địa lý cụ thể mà bạn chọn. Ví dụ: bạn có thể chạy ứng dụng Web Apps của mình trong gói Dịch vụ ứng dụng có mức định giá S1, có 1 lõi và RAM 1,75 GB, như thể hiện trong Hình 8-6:
Hình 8-6: Chọn gói Dịch vụ ứng dụng
Bạn có thể chạy bao nhiêu dịch vụ ứng dụng trên gói Dịch vụ ứng dụng tùy thích, nhưng lưu ý rằng bạn cần chia sẻ tài nguyên giữa tất cả các dịch vụ ứng dụng.
Để lưu trữ cơ sở dữ liệu, chúng tôi sẽ tạo cơ sở dữ liệu SQL. Điều này hoạt động giống như cơ sở dữ liệu SQL Server cục bộ và hiện chạy được quản lý hoàn toàn trong Azure:
- Trong cổng Azure, nhấp vào + Tạo tài nguyên.
- Tìm kiếm Cơ sở dữ liệu SQL và nhấp vào nó để mở ngăn Cơ sở dữ liệu SQL. Nhấp vào Tạo. Ngăn Tạo Cơ sở dữ liệu SQL sẽ mở ra.
- Chọn nhóm tài nguyên mà bạn đã tạo cho ứng dụng web.
- Nhập tên cơ sở dữ liệu.
- Nhấp vào Máy chủ để tạo một máy chủ cơ sở dữ liệu SQL mới:
- Nhập tên cho máy chủ.
- Nhập thông tin đăng nhập quản trị máy chủ. Đây là tên người dùng cho máy chủ.
- Nhập mật khẩu bạn sẽ sử dụng để đăng nhập vào máy chủ.
- Xác nhận mật khẩu.
- Chọn một vị trí. Chọn cùng một vị trí mà bạn đã chọn cho gói Dịch vụ ứng dụng.
- Bấm OK để gửi cấu hình máy chủ mới.
- Trên Máy tính + bộ nhớ, hãy chọn Định cấu hình cơ sở dữ liệu, sau đó chọn mức giá. Đối với mục đích phát triển và thử nghiệm, Bậc cơ bản là đủ.
- Bấm vào Xem lại + tạo, sau đó bấm Tạo. Cơ sở dữ liệu bây giờ sẽ được tạo.
- Điều hướng đến cơ sở dữ liệu SQL và nhấp vào Hiển thị chuỗi kết nối cơ sở dữ liệu.
- Ghi lại chuỗi kết nối vì bạn sẽ cần nó ở phần sau của hướng dẫn này.
Chạy ứng dụng .NET Core cục bộ
Hãy chạy ứng dụng cục bộ trước khi chạy nó trong Azure. Ứng dụng có thể chạy cục bộ vì, theo mặc định, nó sử dụng cơ sở dữ liệu SQLite, là một công cụ cơ sở dữ liệu SQL độc lập:
- Mở Command Prompt hoặc cửa sổ dòng lệnh, sau đó điều hướng đến thư mục bạn muốn sử dụng làm thư mục mã nguồn cho dự án này.
- Chạy các lệnh sau để lấy mã nguồn và điều hướng đến thư mục dự án:
git clone https://github.com/azure-samples/dotnetcore-sqldb-tutorial cd dotnetcore-sqldb-tutorial
- Dự án sử dụng Entity Framework Core để điền vào cơ sở dữ liệu của nó. Để đảm bảo rằng cơ sở dữ liệu được cập nhật và để chạy ứng dụng cục bộ, hãy thực hiện các lệnh sau:
dotnet restore dotnet ef database update dotnet run
- Ứng dụng bây giờ sẽ đang chạy và URL đến ứng dụng (chẳng hạn như http://localhost:5000) phải ở đầu ra trong cửa sổ Command Prompt.
- Điều hướng đến URL đó trong trình duyệt. Thao tác này sẽ tải ứng dụng, trông giống như trong Hình 8-7. Bây giờ bạn có thể tạo các mục việc cần làm mới bằng cách chọn liên kết Tạo mới.
- Đóng ứng dụng bằng cách đóng cửa sổ Command Prompt hoặc bằng cách nhấn Ctrl + C:
Hình 8-7: Ứng dụng chạy cục bộ trong trình duyệt
Kết nối ứng dụng web cục bộ với cơ sở dữ liệu đang chạy trong Azure
Bây giờ bạn có một ứng dụng đang hoạt động chạy cục bộ. Trước khi chúng tôi triển khai nó cho Azure, chúng tôi sẽ thay đổi mã nguồn để nó có thể kết nối với cơ sở dữ liệu SQL:
- Trong kho lưu trữ mã nguồn cục bộ của bạn, hãy tìm tệp Startup.cs và tìm mã sau:
servicesAddDbContext<MyDatabaseContext> (options => options.UseSqlite("Data Source=localdatabase.db"));
- Thay thế mã bằng mã sau, mã này sẽ kết nối với cơ sở dữ liệu Azure SQL:
// Use SQL Database if in Azure, otherwise, use SQLite if(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT ") == "Production") services.AddDbContext<MyDatabaseContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyDbConnection"))); else services.AddDbContext<MyDatabaseContext>(options => options.UseSqlite("DataSource=localdatabase.db")); // Automatically perform database migration services.BuildServiceProvider().GetService<MyDatabaseContext>().Database. Migrate();
Mã này xem xét môi trường mà nó đang chạy và thay đổi kết nối cơ sở dữ liệu của nó dựa trên thông tin đó. Khi chạy trong môi trường sản xuất (Azure, trong trường hợp này), mã sẽ nhận được chuỗi kết nối cho cơ sở dữ liệu từ biến MyDbConnection mà chúng tôi sẽ định cấu hình trong Azure.
Đoạn mã này cũng chạy phương thức Database.Migrate(), phương thức này thực thi quá trình di chuyển Entity Framework Core mà trước đây chúng ta đã chạy theo cách thủ công.
- Lưu các thay đổi của bạn và chạy các lệnh sau để thực hiện các thay đổi đối với kho lưu trữ Git cục bộ của bạn:
git add . git commit -m "connect to SQLDB in Azure"
Bây giờ, chúng ta sẽ định cấu hình biến chuỗi kết nối trong Azure.
- Trong cổng Azure, điều hướng đến ứng dụng web mà chúng tôi đã tạo trước đó.
- Điều hướng đến Cấu hình trong Cài đặt.
- Tạo một chuỗi kết nối mới có tên MyDbConnection. Giá trị phải là chuỗi kết nối với cơ sở dữ liệu SQL (bao gồm tên người dùng và mật khẩu) mà bạn đã lưu trước đó khi tạo cơ sở dữ liệu và đặt Loại thành SQLAzure.
- Nhấp vào để Lưu. Cài đặt ứng dụng trong cổng Azure sẽ giống như trong Hình 8-8:
Hình 8-8: Cài đặt ứng dụng trong cổng Azure
Triển khai ứng dụng web cho Azure
Chúng tôi sẽ sử dụng Git để đẩy ứng dụng lên Azure. Để kết nối kho lưu trữ Git cục bộ với Azure, bạn phải có người dùng triển khai được định cấu hình trên máy chủ (Ứng dụng web) để xác thực việc triển khai của bạn. Người dùng triển khai là cấp tài khoản và khác với tài khoản đăng ký Azure của bạn. Bạn chỉ cần định cấu hình người dùng triển khai này một lần:
- Trong cổng Azure, điều hướng đến ứng dụng web.
- Trên ứng dụng web trong cổng Azure, chọn Trung tâm triển khai.
- Chọn Git cục bộ, sau đó chọn dịch vụ xây dựng Dịch vụ ứng dụng, rồi bấm Kết thúc.
- Sao chép Git Clone Uri đã được tạo cho ứng dụng web. Điều này sẽ được sử dụng để đẩy mã ứng dụng vào ứng dụng web bằng Git:
Hình 8-9: Git Clone Uri được hiển thị
- Chọn nút Thông tin xác thực triển khai (Deployment Credentials) để đặt thông tin đăng nhập sẽ được sử dụng để xác thực Git khi triển khai ứng dụng.
- Trên ngăn Thông tin xác thực triển khai, chọn phạm vi Thông tin xác thực người dùng trong tab Git cục bộ.
- Nhập Tên người dùng và Mật khẩu, sau đó bấm Lưu thông tin đăng nhập. Điều này cần phải được thiết lập lần đầu tiên để bạn có thông tin xác thực đối với điểm cuối Git sẽ được sử dụng.
- Mở dấu nhắc lệnh trên máy cục bộ của bạn.
- Thêm điều khiển từ xa vào kho lưu trữ Git cục bộ của bạn bằng cách sử dụng URL Git từ xa:
- Thay thế <deploymentLocalGitUrl> bằng Git Clone Uri từ Trung tâm triển khai ứng dụng web Azure.
- Sử dụng URL để chạy lệnh sau:
git remote add azure <deploymentLocalGitUrl>
- Sau khi mục tiêu từ xa được thêm vào kho lưu trữ Git, bạn có thể đẩy mã của mình vào đó bằng cách chạy lệnh sau. Bạn sẽ cần nhập thông tin đăng nhập để có thể đẩy mã sang Azure. Sử dụng tên người dùng và mật khẩu bạn đã sử dụng để tạo người dùng triển khai:
git push azure master
Khi được nhắc, hãy nhập Tên người dùng và Mật khẩu đã được tạo trước đó bằng Azure Cloud Shell.
Việc đẩy mã nguồn sang Azure có thể mất vài phút trong lần đầu tiên. Sau khi hoàn tất, hãy điều hướng đến URL của ứng dụng web Azure của bạn, URL này sẽ giống như sau: http://<app_ name>.azurewebsites.net.
- Thêm một số mục việc cần làm trong ứng dụng để kiểm tra kết nối của nó với cơ sở dữ liệu.
Bây giờ bạn có một ứng dụng đang hoạt động trong Azure.