在 Python 中编写的 AWS Glue 作业中构建并导入 Cython 模块

build and import a Cython module in AWS Glue job written in Python

为了加快 ETL 作业的执行速度,我在 Cython“regression.pyx” 而不是 python 中实现了回归算法。

遗憾的是,我找不到任何文档,说明如何正确集成到 AWS Glue 作业中。

我想在 python 粘合作业中导入 Cython 回归模块,如下所示:

from regression import reg

通常,Cython 脚本必须使用setup.py 脚本构建,然后才能导入。在 AWS glue 作业中正确集成的最佳方法是什么?

如有任何帮助,我们将不胜感激。

您可以在创建作业时指定外部库位置。

您只需将 .zip 或 .whl 文件上传到 S3 并指定路径。

更多信息here

我的 CodePipeline 的构建规范:

BuildGlueModules:
    Type: AWS::CodeBuild::Project
    Properties:
      Artifacts:
        Type: CODEPIPELINE
      Environment:
        ComputeType: BUILD_GENERAL1_MEDIUM
        Image: aws/codebuild/standard:4.0
        Type: LINUX_CONTAINER
      Name: !Sub ${AWS::StackName}-BuildGlueModules
      ServiceRole: !Ref CodeBuildRole
      Source:
        Type: CODEPIPELINE
        BuildSpec: !Sub |
          version: 0.2
          phases:
            install:
              runtime-versions:
                python: 3.8
            pre_build:
              commands:
                - python3 setup.py bdist_wheel
            build:
              commands:
                - aws s3 sync ./dist/ s3://my-bucket/glue_modules