当使用AWSSDK.Athena C#时出现“您未经授权”的错误时,可以在代码中切换角色进行解决。
安装AWS SDK for .NET NuGet 包。
创建AmazonAthenaClient对象,并将要使用的角色的ARN设置为在调用API时使用的角色,如下所示:
AmazonAthenaClient client = new AmazonAthenaClient();
client.SetArnRole("arn:aws:iam::123456789012:role/YourRoleName");
示例代码如下:
using Amazon.Athena;
using Amazon.Runtime;
string accessKey = "accessKey";
string secretKey = "secretKey";
string roleName = "YourRoleName";
string arn = "arn:aws:iam::123456789012:role/" + roleName;
BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonAthenaClient client = new AmazonAthenaClient(credentials);
client.SetArnRole(arn);
var getResultRequest = new GetQueryExecutionRequest()
{
QueryExecutionId = executionId
};
var getResultResponse = await client.GetQueryExecutionAsync(getResultRequest);
var status = getResultResponse.QueryExecution.Status.State;
其中,accessKey、secretKey和roleName应替换为你的AWS访问密钥和角色名。
这样,您就可以在使用AWSSDK.Athena C#时成功切换角色解决授权错误了。