我正在使用AWSSDK. Athena从VS 2022 C#连接到https://davidpallmann.hashnode.dev/hello-athena。
在C#代码var result = await _client.StartQueryExecutionAsync(queryRequest)
中,我得到以下错误。
"You are not authorized to perform: athena:StartQueryExecution on the resource. After your AWS administrator or you have updated your permissions, please try again."
当我在AWS Athena上查询时,我需要将角色切换为“myRole”,并且还需要将工作组从主工作组切换到另一个工作组,例如“mycompany-workgroup”,然后我才能成功运行查询。如果我不将工作组切换到“mycompany-workgroup”,我会收到类似的错误
"You are not authorized to perform: athena:GetWorkGroup on the resource. After your AWS administrator or you have updated your permissions, please try again."
如何在C#代码中将Role切换为“myRole”?
_client = new AmazonAthenaClient(Amazon.RegionEndpoint.USEast1);
var queryRequest = new StartQueryExecutionRequest
{
QueryString = "SELECT * from myDB.myTable",
QueryExecutionContext = new QueryExecutionContext()
{
Database = "myDB"
},
WorkGroup = "myWorkgroup"
};
谢谢你
2条答案
按热度按时间bis0qfac1#
我得到了一个使用.NET服务客户端(V3)的Athena查询。在这里查看输出:
下面是可以工作的.NET代码。请确保您指定您的桶名称等,以获得此程序成功地工作。注意,您可以在StartQueryExecutionRequest对象上指定工作组。有关详细信息,请参阅How workgroups work。
jhkqcmku2#
在
StartQueryExecutionRequest
类中,有WorkGroup
属性。可以使用该属性指定要在其中运行查询的工作组的名称。有关详细信息,请参阅StartQueryExecutionRequest。此外,您可以使用下面的代码通过假设另一个可以访问Athena工作组的角色来调用Athena。