- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 AWS 新手。我有一个用户帐户和两个角色,一个用于生产,一个用于测试。
通常我会登录我的帐户并切换到产品角色来运行一些简单的选择查询。
现在我想通过 PyAthena 在 Python 中本地使用 Athena。我已经尝试了 PyAthena 文档中的以下资源:
from pyathena import connect
import pandas as pd
conn = connect(aws_access_key_id='YOUR_ACCESS_KEY_ID',
aws_secret_access_key='YOUR_SECRET_ACCESS_KEY',
s3_staging_dir='s3://YOUR_S3_BUCKET/path/to/',
region_name='us-west-2')
df = pd.read_sql("SELECT * FROM many_rows", conn)
print(df.head())
但总是出现错误
An error occurred (AccessDeniedException) when calling the StartQueryExecution operation: User: arn:aws:iam::xxxxxx:user/xxxx@xxxxx is not authorized to perform: athena:StartQueryExecution on resource: arn:aws:athena:ap-southeast-2:xxxxx:workgroup/primary
如果我使用我的用户帐户运行相同的查询而不切换角色,这正是我会得到的错误。
我还尝试在连接中添加配置文件名称参数
,但即使正确识别了环境,仍然无法工作。
有人可以帮助我如何在本地 python 代码中执行“切换”角色步骤吗?
最佳答案
问题似乎是由于缺少角色而不是 profile_name
参数造成的。如果您查看 pyathena 中的 Connection
类,您可以在初始化连接时指定一个 role_arn
变量。 Here's the line I'm talking about.
您可能想尝试这种方式 -
conn = connect(aws_access_key_id='YOUR_ACCESS_KEY_ID',
aws_secret_access_key='YOUR_SECRET_ACCESS_KEY',
s3_staging_dir='s3://YOUR_S3_BUCKET/path/to/',
region_name='us-west-2',
role_arn='<your arn here'>)
我自己还没有测试过,因为我没有 Athena 设置。
关于python - AWS Athena PyAthena AccessDeniedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59232003/
from pyathena import connect import pandas as pd conn = connect(aws_access_key_id='YOUR_ACCESS_KEY_I
我需要处理存储桶 S3 中特定文件夹中特定流的一些数据。我想在 Python 中执行此操作。经过一段时间的搜索,我发现了库 PyAthena 这正是我正在寻找的! 我安装了 PyAthena 版本 1
我是 AWS 新手。我有一个用户帐户和两个角色,一个用于生产,一个用于测试。 通常我会登录我的帐户并切换到产品角色来运行一些简单的选择查询。 现在我想通过 PyAthena 在 Python 中本地使
使用 python 脚本查询 AWS Athena 架构时,pyathena 或 boto3 哪一个更快? 目前我正在使用 pyathena 来查询 Athena 模式,但它非常慢,我知道还有 bot
使用 python 脚本查询 AWS Athena 架构时,pyathena 或 boto3 哪一个更快? 目前我正在使用 pyathena 来查询 Athena 模式,但它非常慢,我知道还有 bot
此查询在 Athena 的前端运行良好: SELECT * FROM analysisdata."iris" limit 10; 我正在使用此 Python 代码通过 Python/pyathena
我有一个查询,通过扫描 90GB 数据,在 43 秒内(直接)在 Athena 上运行。然后,我使用 pyathena 运行相同的查询(我在 EMR 上的 jupyter 笔记本中使用它),但它只是没
我是一名优秀的程序员,十分优秀!