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

AWS CloudFormation如何获取移除固定前缀后的子字符串

CloudFormation 字符串截取解决方案

我的示意图

现有写法修正

你尝试的拆分思路是可行的,但索引选择有误:用固定前缀作为分隔符拆分字符串时,拆分结果的第一个元素为空字符串,第二个元素才是你需要的目标内容,正确写法如下:

# 针对前缀为abcd/的场景
Fn::Select:
  - 1
  - Fn::Split:
      - 'abcd/'
      - ${string}

上述代码就可以直接得到123xx/OBcs/azy_cd的结果。

通用无固定前缀截取方案

如果需要去掉任意第一个/之前的所有内容(比如第一个示例中的redundant_value/、第二个示例中的abcd/都可以统一处理,不需要修改分隔符),可以使用切片选择 + 拼接的方案:

Fn::Join:
  - '/'
  - Fn::Select:
      # "1:" 代表取索引1到末尾的所有数组元素
      - "1:"
      - Fn::Split:
          - '/'
          - ${string}

以你第一个示例字符串redundant_value/12b4/xyz/succes为例,拆分后得到数组["redundant_value", "12b4", "xyz", "succes"],取索引1之后的所有元素拼接后即可得到12b4/xyz/succes。

Fn::Sub 函数用法说明

Fn::Sub 不用于字符串截取,它的核心能力是替换字符串中的变量,适合将参数、资源属性嵌入到固定字符串的场景,基础用法如下:

基础变量替换

直接引用模板中已定义的参数、资源属性:

# 假设已有参数Environment取值为prod
Fn::Sub: "https://${Environment}.example.com"
# 输出结果:https://prod.example.com

自定义变量替换

可以临时定义变量用于替换:

Fn::Sub:
  - "arn:aws:s3:::${BucketName}/${DataPrefix}"
  - BucketName: !Ref MyS3Bucket
    DataPrefix: "business/logs"

内容的提问来源于stack exchange,提问作者Brian Huynh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:57:03