如何在 Sagemaker 预处理作业中使用 athena VPC 端点从隔离网络模式查询数据

问题描述 投票:0回答:1

我在隔离网络中编写了一个 sagemaker 处理作业。它有一个 Athena sql,可以从 athena 读取数据帧。

但它会抛出错误“botocore.exceptions.NoCredentialsError:无法找到凭据”

任何人都可以帮助指导如何在 python 中利用 vpc ednpoint 进行 athena 查询。 我尝试查看下面的文档,但没有地方可以看到 url 信息 https://aws-sdk-pandas.readthedocs.io/en/stable/stubs/awswrangler.athena.read_sql_query.html

recent_data_sql="select * from db.dummy_table"
recent_data_df = wr.athena.read_sql_query(
        sql=recent_data_sql, database="default", ctas_approach=False, workgroup="wg",
        boto3_session=session
        )
amazon-web-services amazon-athena amazon-sagemaker aws-data-wrangler
1个回答
0
投票

如果您在创建处理作业时将

EnableNetworkIsolation
设置为
true
,您将无法从脚本/容器进行任何网络调用。因此,您将无法在脚本中运行上述代码,因为它将尝试对 Athena 端点进行网络调用。尽管如此,您应该收到超时错误。确保您没有将任何凭据捆绑到容器中。处理作业有 附加 IAM 执行角色,并且该角色应该具有与您的代码相关的 Athena 访问权限。

如果您想要访问 Athena 的 VPC 终端节点 (PrivateLink),您可以通过指定具有到 Athena VPC 终端节点的路由的子网,使用 VPC 配置启动处理作业。处理作业需要将

EnableNetworkIsolation
设置为
false

注意: 创建接口 VPC 终端节点后,如果您为终端节点启用私有 DNS 主机名,则默认 Athena 终端节点 (https://athena.Region.amazonaws.com) 将解析为您的 VPC 终端节点。 https://docs.aws.amazon.com/athena/latest/ug/interface-vpc-endpoint.html

© www.soinside.com 2019 - 2024. All rights reserved.