我正在尝试运行 kubeflow 管道设置,并且我有几个环境(dev、staging、prod)。
在我的管道中,我kfp.components.func_to_container_op
用来获取管道任务实例 (ContainerOp),然后使用允许它与我的 s3 存储桶集成的适当参数执行它:
from utils.test import test
test_op = comp.func_to_container_op(test, base_image='my_image')
read_data_task = read_data_op(
bucket,
aws_key,
aws_pass,
)
arguments = {
'bucket': 's3',
'aws_key': 'key',
'aws_pass': 'pass',
}
kfp.Client().create_run_from_pipeline_func(pipeline, arguments=arguments)
每个环境都使用不同的凭据连接到它,并且这些凭据正在函数中传递:
def test(s3_bucket: str, aws_key: str, aws_pass: str):
....
s3_client = boto3.client('s3', aws_access_key_id=aws_key, aws_secret_access_key=aws_pass)
s3_client.upload_file(from_filename, bucket_name, to_filename)
因此,对于每个环境,我都需要更新参数以包含正确的凭据,这使得维护变得非常困难,因为每次我想从 dev 更新到 stg 再到 prod 时,我都不能简单地复制代码。
我的问题是通过这些凭据的最佳方法是什么?