You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置AWS Glue通过pyodata API及已有VPC访问SAP数据?

配置AWS Glue通过VPC访问SAP OData服务的步骤

1. 绑定Glue作业到目标VPC

  • 创建或编辑Glue作业时,在网络配置模块选择已通过TGW与SAP连通的VPC。
  • 分配该VPC下的私有子网(避免公有子网,确保流量走私有链路)。
  • 配置安全组:允许Glue作业的安全组出站访问SAP OData服务的端口(通常是HTTPS 443或SAP自定义HTTP端口),同时确保SAP侧安全组允许该Glue安全组的入站请求。

2. 配置私有DNS解析(按需操作)

如果SAP服务使用私有域名:

  • 确保VPC的Route 53私有托管区已配置对应域名的解析记录,或VPC的DNS服务器能解析SAP服务的私有IP。
  • 若需指定自定义DNS,可在Glue作业的附加参数中添加:
    --conf spark.driver.extraJavaOptions=-Ddns.server=<SAP_DNS_SERVER_IP>
    --conf spark.executor.extraJavaOptions=-Ddns.server=<SAP_DNS_SERVER_IP>
    

3. 引入pyodata依赖库

AWS Glue默认环境不含pyodata,可通过两种方式添加:

  • S3库包上传:将pyodata及其依赖(如requests、urllib3)打包为.zip文件,上传至S3存储桶,在Glue作业的Python库路径中指定该S3地址。
  • 自定义镜像:基于Glue官方镜像安装pyodata后构建自定义镜像,上传至ECR,创建作业时选择该镜像。

4. 编写Glue作业代码调用OData API

示例代码片段:

import sys
import pyodata
import requests
from awsglue.utils import getResolvedOptions

# 解析作业传入参数
args = getResolvedOptions(sys.argv, ['SAP_ODATA_URL', 'SAP_USER', 'SAP_PASSWORD'])

# 配置请求会话,适配私有网络访问
session = requests.Session()
session.auth = (args['SAP_USER'], args['SAP_PASSWORD'])
# 若SAP使用自签名证书,生产环境建议导入可信证书,临时测试可禁用验证
# session.verify = False

# 初始化OData服务客户端
service = pyodata.Client(args['SAP_ODATA_URL'], session)

# 获取实体集数据
entity_data = service.entity_sets['TargetEntitySet'].get_entities().execute()

# 转换为Spark DataFrame用于后续处理
df = spark.createDataFrame([item._as_dict() for item in entity_data])

# 示例:将数据写入S3
df.write.parquet('s3://your-bucket/output-path/')

5. 网络连通性排障(按需操作)

若出现连接失败,可在作业中添加测试代码:

import socket

def test_sap_connection(host, port):
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(10)
        conn_result = sock.connect_ex((host, port))
        if conn_result == 0:
            print(f"成功连接到 {host}:{port}")
        else:
            print(f"连接失败,错误码: {conn_result}")
        sock.close()
    except Exception as e:
        print(f"连接异常: {str(e)}")

# 替换为SAP服务的私有IP和端口
test_sap_connection('sap-private-ip', 443)

内容的提问来源于stack exchange,提问作者Sam Richardson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:22:43