如何通过AWS SDK从ARN字符串提取资源标识符(Ruby实现)
如何用Ruby提取AWS ARN中的资源路径部分?
你要提取的是ARN最后一个冒号之后的资源路径部分,用Ruby可以直接通过字符串操作或正则表达式实现,完全不需要依赖AWS SDK,下面是两种实用方法:
方法一:字符串分割(最简单高效)
AWS ARN的结构固定为arn:aws:<service>:<region>:<account-id>:<resource-path>,直接按冒号分割后取最后一个元素即可:
# 你的ARN列表 arns = [ "arn:aws:elasticloadbalancing:us-east-1:1234567890:app/cmy-app/b473fda15a743462", "arn:aws:elasticloadbalancing:us-east-1:1234567890:targetgroup/my-app/1234567890" ] # 提取资源路径 resource_paths = arns.map { |arn| arn.split(':').last } # 输出结果 puts resource_paths.inspect # => ["app/cmy-app/b473fda15a743462", "targetgroup/my-app/1234567890"]
方法二:正则表达式(更严谨,适配特殊场景)
如果担心ARN格式有特殊情况(不过AWS ARN的资源路径部分不会包含冒号),可以用正则匹配最后一个冒号之后的所有内容:
resource_paths = arns.map do |arn| match_result = arn.match(/:(?<resource>.+)$/) match_result[:resource] if match_result end puts resource_paths.inspect # => ["app/cmy-app/b473fda15a743462", "targetgroup/my-app/1234567890"]
至于AWS SDK,确实没有专门提供解析ARN资源路径的方法——因为这个逻辑太简单,直接用Ruby原生字符串操作就足够解决问题了。
内容的提问来源于stack exchange,提问作者user1576738
相关产品推荐
相关产品推荐

