我们正在从在线资源中找出以下有关通过 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 -h xxx.rds.amazonaws.com -u xxx -p
我们希望用C#做类似的测试。
创建
AmazonSimpleSystemsManagementClient
的实例本身实际上并不会对 AWS 进行任何回调。 它设置客户端配置,例如凭证和区域,然后当您在客户端上调用方法时,它将实际调用 AWS。 因此,您在实例化对象后立即记录的行尚未进行任何调用,因此此时您的记录消息是不正确且具有误导性的。