如何通过C#连接AWS上的MySQL?

问题描述 投票:0回答:1

我们正在从在线资源中找出以下有关通过 C# 连接到 AWS 的小示例:

  ...
  try
  {
      var ssmClient = AwsConnection.ConnectToAWSByVariables(
          accessKeyId: "xxx",
          secretAccessKey: "wrongwrong",
          regionString: "xxx"
          );
      Console.WriteLine("Successfully connected to AWS using environment variables.");
  }
  catch (Exception ex)
  {
      Console.WriteLine($"Error: {ex.Message}");
  }

  ...

public static IAmazonSimpleSystemsManagement ConnectToAWSByVariables(
  string accessKeyId,
  string secretAccessKey,
  string regionString)
{
    // Create AWS credentials
    var awsCredentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);
    RegionEndpoint region = RegionEndpoint.GetBySystemName(regionString);

    // Create the AWS service client (in this case, SSM)
    return new AmazonSimpleSystemsManagementClient(awsCredentials, region);
}

如上面的示例源代码

secretAccessKey: "wrongwrong",
所示,我们故意为秘密访问密钥提供了错误的值。尽管如此,程序仍然继续运行,没有错误,并打印出“使用环境变量成功连接到AWS。”。

我们暂时认为上面的程序实际上并没有连接到AWS,否则它应该不会因为错误的凭证而成功。那么,我们有没有更好的方法来验证连接呢?

在使用 AWS CLI 之前,我们已经成功完成了 happy pass,步骤如下:

  • 通过命令
    aws ssm start-session ...
    连接到AWS,并登录AWS内的基站主机。
  • 在基站主机上,通过命令连接MySQL实例
    mysql -h xxx.rds.amazonaws.com -u xxx -p
  • 登录MySQL后,我们可以运行SQL查询来证明连接路径功能正常。

我们希望用C#做类似的测试。

c# mysql amazon-web-services amazon-rds
1个回答
0
投票

创建

AmazonSimpleSystemsManagementClient
的实例本身实际上并不会对 AWS 进行任何回调。 它设置客户端配置,例如凭证和区域,然后当您在客户端上调用方法时,它将实际调用 AWS。 因此,您在实例化对象后立即记录的行尚未进行任何调用,因此此时您的记录消息是不正确且具有误导性的。

© www.soinside.com 2019 - 2024. All rights reserved.