本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
向 .NET 应用程序环境中添加 Amazon RDS 数据库实例
本主题提供使用 Elastic Beanstalk 控制台创建 Amazon RDS 的说明。您可以使用 Amazon Relational Database Service(Amazon RDS)数据库实例来存储由应用程序收集和修改的数据。数据库可以耦合到您的环境并由 Elastic Beanstalk 进行管理,也可以被创建为解耦数据库并由另一项服务进行外部管理。在这些说明中,数据库与您的环境耦合并由 Elastic Beanstalk 管理。有关将 Amazon RDS 与 Elastic Beanstalk 集成的更多信息,请参阅 将数据库添加到 Elastic Beanstalk 环境。
Sections
向环境中添加数据库实例
向环境添加数据库实例
打开 Elastic Beanstalk
控制台,然后在 “区域” 列表中,选择您的。 Amazon Web Services 区域 - 
  
在导航窗格中,选择 Environments(环境),然后从列表中选择环境的名称。
 在导航窗格中,选择 Configuration (配置)。
- 
    
在 Database(数据库)配置类别中,选择 Edit(编辑)。
 - 
    
选择数据库引擎,然后输入用户名和密码。
 - 
要保存更改,请选择页面底部的 Apply(应用)。
 
添加一个数据库实例大约需要 10 分钟。环境更新完成后,您的应用程序就可以通过以下环境属性访问数据库实例的主机名和其他连接信息:
| 属性名称 | 描述 | 属性值 | 
|---|---|---|
| 
           
  | 
        
           数据库实例的主机名。  | 
        
           在 Amazon RDS 控制台的 Connectivity & security(连接和安全)选项卡上:Endpoint(端点)。  | 
      
| 
           
  | 
        
           数据库实例接受连接的端口。默认值因数据库引擎而异。  | 
        
           在 Amazon RDS 控制台的 Connectivity & security(连接和安全)选项卡上:Port(端口)。  | 
      
| 
           
  | 
        
           数据库名称   | 
        
           在 Amazon RDS 控制台的 Configuration(配置)选项卡上:DB Name(数据库名称)。  | 
      
| 
           
  | 
        
           您为数据库配置的用户名。  | 
        
           在 Amazon RDS 控制台的 Configuration(配置)选项卡上:Master username(主用户名)。  | 
      
| 
           
  | 
        
           您为数据库配置的密码。  | 
        
           在 Amazon RDS 控制台中不可供参考。  | 
      
有关与 Elastic Beanstalk 环境耦合的数据库实例配置的更多信息,请参阅 将数据库添加到 Elastic Beanstalk 环境。
下载驱动程序
使用 EntityFramework 下载并安装 NuGet 程序包以及适合您开发环境的数据库驱动程序。
.NET 的常见实体框架数据库提供程序
- 
        
SQL Server –
Microsoft.EntityFrameworkCore.SqlServer - 
        
MySQL –
Pomelo.EntityFrameworkCore.MySql - 
        
PostgreSQL –
Npgsql.EntityFrameworkCore.PostgreSQL 
连接到数据库
Elastic Beanstalk 在环境属性中提供所连数据库实例的连接信息。使用 ConfigurationManager.AppSettings 可读取这些属性并配置数据库连接。
例 Helpers.cs - 连接字符串方法
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
namespace MVC5App.Models
{
  public class Helpers
  {
    public static string GetRDSConnectionString()
    {
      var appConfig = ConfigurationManager.AppSettings;
      string dbname = appConfig["RDS_DB_NAME"];
      if (string.IsNullOrEmpty(dbname)) return null;
      string username = appConfig["RDS_USERNAME"];
      string password = appConfig["RDS_PASSWORD"];
      string hostname = appConfig["RDS_HOSTNAME"];
      string port = appConfig["RDS_PORT"];
      return "Data Source=" + hostname + ";Initial Catalog=" + dbname + ";User ID=" + username + ";Password=" + password + ";";
    }
  }
}使用连接字符串初始化您的数据库环境。
例 DBContext.cs
using System.Data.Entity;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
namespace MVC5App.Models
{
  public class RDSContext : DbContext
  { 
    public RDSContext()
      : base(GetRDSConnectionString())
    {
    }
    public static RDSContext Create()
    {
      return new RDSContext();
    }
  }
}