咨询在Terraform中定义对应AWS CloudFormation的AWS::SageMaker::Pipeline资源的方法
解答:Terraform中对应AWS::SageMaker::Pipeline的资源
当然有啦!Terraform的AWS Provider里专门提供了对应CloudFormation AWS::SageMaker::Pipeline的资源——aws_sagemaker_pipeline。我把你给出的CloudFormation代码片段转换成等价的Terraform配置,你可以直接参考:
resource "aws_sagemaker_pipeline" "sagemaker_pipeline" { name = var.p_pipeline_name display_name = var.p_pipeline_name description = var.p_pipeline_description # 用jsonencode将结构化数据转为JSON字符串,比硬编码更易维护 pipeline_definition = jsonencode({ Version = "2020-12-01" # 这里补充你原CloudFormation中PipelineDefinitionBody的完整内容 }) role_arn = var.p_pipeline_role_arn tags = { project = var.p_project_name } }
参数对应说明
- CloudFormation的
PipelineName→ Terraform的name PipelineDisplayName→display_namePipelineDescription→descriptionPipelineDefinition.PipelineDefinitionBody→pipeline_definition:Terraform推荐用jsonencode处理结构化的定义内容,避免手动写JSON字符串容易出错的问题;如果原CloudFormation里用!Sub做了变量替换,你可以在jsonencode里直接引用Terraform变量,或者用templatefile函数加载外部模板来实现同样的替换逻辑。RoleArn→role_arn- Tags部分:Terraform用键值对的map格式,和CloudFormation的数组标签结构完全等价。
如果你需要处理复杂的管道定义,也可以把定义内容单独放在一个JSON文件里,用file()函数读取后传入pipeline_definition参数,这样配置会更清晰。
内容的提问来源于stack exchange,提问作者Sol Malisani
相关产品推荐
相关产品推荐

