无需AWS CLI,如何在AWS Wrangler代码中直接配置凭证?
直接在AWS Wrangler代码里添加凭证的方法
AWS Wrangler支持两种绕过本地静态配置(比如CLI或配置文件)的方式,直接在代码里传递AWS凭证,具体如下:
方法1:用boto3 Session传凭证
先创建一个包含凭证的boto3 Session,再传给AWS Wrangler的查询方法就行:
import awswrangler as wr import boto3 # 构建带凭证的Session session = boto3.Session( aws_access_key_id='你的AWS_ACCESS_KEY_ID', aws_secret_access_key='你的AWS_SECRET_ACCESS_KEY', # 要是需要指定区域,就加上这行 region_name='us-east-1' ) # 调用read_sql_query时传入session参数 my_query = wr.athena.read_sql_query( sql="""select "$path" as path from table""", database='db', workgroup='workgroup', boto3_session=session )
方法2:全局配置AWS Wrangler凭证
如果想让凭证对所有Wrangler操作生效,可以直接设置全局配置:
import awswrangler as wr # 全局设置凭证 wr.config.s3.access_key_id = '你的AWS_ACCESS_KEY_ID' wr.config.s3.secret_access_key = '你的AWS_SECRET_ACCESS_KEY' # 可选:指定区域 wr.config.s3.region_name = 'us-east-1' # 之后正常执行查询即可 my_query = wr.athena.read_sql_query( sql="""select "$path" as path from table""", database='db', workgroup='workgroup' )
提醒:直接把凭证硬编码在代码里有安全风险,生产环境里建议用环境变量动态获取,比如
os.getenv('AWS_ACCESS_KEY_ID'),别把敏感信息写死在代码里。
内容的提问来源于stack exchange,提问作者gseph
相关产品推荐
相关产品推荐

