amazon-web-services - AWS Sagemaker Workflow 管道使用存储在从 Codebuild 创建的工件中的代码
问题描述
我创建了一个sagemaker.workflow.pipeline.Pipeline
对象,其中有几个处理步骤我试图引用 s3 文件路径而不是本地文件路径,因此它不会在每次管道运行时将文件上传到 s3。
我的问题是,我可以修改step
orscriptprocessor
或pipeline
对象,以便我可以引用从 AWS Codebuild 创建的工件中的代码吗?
如果没有,我可以使用 codebuild 首先将我的本地文件复制到特定的 S3 位置(到目前为止我有权限问题)然后运行管道吗?
作为你的参考
...
step_data_ingest = ProcessingStep(
name="DataIngestion",
processor=sklearn_data_ingest_processor,
inputs=[
ProcessingInput(
input_name="input_train_data",
source=input_data,
destination="/opt/ml/processing/input/data/train"
),
ProcessingInput(
input_name="input_test_data",
source=test_data,
destination="/opt/ml/processing/input/data/test"
),
ProcessingInput(
input_name="requirement_file",
source=os.path.join(code_dir, "requirements.txt"),
destination="/opt/ml/processing/input/requirement"
),
],
outputs=[
ProcessingOutput(
output_name="train",
source="/opt/ml/processing/output/train",
destination=get_projection_s3_dir(experiment_dir, "datasets/train")
),
ProcessingOutput(
output_name="validation",
source="/opt/ml/processing/output/validation",
destination=get_projection_s3_dir(experiment_dir, "datasets/validation")
),
ProcessingOutput(
output_name="test",
source="/opt/ml/processing/output/test",
destination=get_projection_s3_dir(experiment_dir, "datasets/test")
),
ProcessingOutput(
output_name="sample",
source="/opt/ml/processing/output/sample",
destination=get_projection_s3_dir(experiment_dir, "datasets/sample")
),
],
code=os.path.join(code_dir, "data_ingestion.py"),
# something like s3://some_code_dir/data_ingestion.py
job_arguments = ["-c", country,
"-v", train_val_split_percentage],
)
...
我期望做的是:
# in processing step or processor
ProcessingStep(
...
code="data_ingestion.py"
code_location="s3://some_artifact_bucket/buildartifact/fdskz.zip"
...
)
或者
# in processing step or processor
ProcessingStep(
...
code="s3://some_artifact_bucket/buildartifact/fdsix/data_ingestion.py"
...
)
或者
# in buildspec.yml for codebuild
aws s3 sync ./code_dir/ s3://some_code_dir/
解决方案
使用时ProcessingStep
,可以使用 anS3 URI
作为代码位置,看看这个以供参考。
推荐阅读
- webpack - 为什么使用 Webpack 时有时未定义窗口?
- angular - node_modules/rxjs/internal/types.d.ts(81,44): 错误 TS1005: ';' 安装 Angular 6 后的预期错误
- android - 后台服务在 android PIE 版本中无法正常工作
- amazon-web-services - 使用 S3 存储桶通过单一云端分发服务多个网站
- google-bigquery - 读取 Avro 文件并将其写入 BigQuery 表
- c - 2n 比例整数的 16 位加法
- hive - Hive- 使用 ROW_NUMBER() 删除重复行
- java - Appium 不显示 webview 上下文,它只显示本机应用程序上下文。如何获取 webview 上下文?
- java - 最后的分析失败了。后台任务页面上提供了更多详细信息
- python - 如何获取弹性搜索索引中列(字段)中不同值的计数