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

在CloudFormation中用Join和Ref格式化带用户名密码的curl命令出错求助

问题分析与修复方案

嘿,我一眼就瞅出你配置里的问题啦——CloudFormation的语法写错了,导致User和Pass参数没正确注入到curl命令里,所以curl才会提示你手动输入密码。

错误点拆解

  1. !Join语法错误:你写的!Join [":",[ !Ref User, !Ref, Pass] ]里,!Ref, Pass多了个逗号,正确的参数引用应该是!Ref Pass,不需要额外逗号。
  2. 没必要嵌套Join(可选优化):既然已经用了!Sub,其实可以直接在字符串里用变量替换,不用再套一层!Join,这样代码更简洁易懂,也能避免语法错误。

修复后的两种写法

写法1:修正!Join的语法错误

UserData:
  'Fn::Base64': !Sub |
    #!/bin/bash -xe
    curl -k -f -u ${!Join [":", [!Ref User, !Ref Pass]]} -O https://myartifacctory/.../myfile

写法2:直接用!Sub的变量替换(更推荐)

UserData:
  'Fn::Base64': !Sub |
    #!/bin/bash -xe
    curl -k -f -u ${User}:${Pass} -O https://myartifacctory/.../myfile

这样修改后,CloudFormation会正确把User和Pass参数的值拼接成user:pass的格式传入curl命令,就不会再提示输入密码啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:32:38