CloudFormation用户数据到Base64的解码不正确

时间:2018-10-12 05:08:06

标签: powershell unicode base64 amazon-cloudformation

我已经创建了创建实例的CloudFormation模板。我想通过用户数据将PowerShell脚本传递给Windows实例。但是,当使用Base64对其进行编码时,Cloudformation模板无法正确对其进行解码。

我想通过这个:

Set-DNSClientServerAddress -InterfaceIndex (Get-NetAdapter).InterfaceIndex -ServerAddresses ("172.31.15.30")

当我在CloudFormation中检查模板时,它被解码为:

Set-DNSClientServerAddress /u2013InterfaceIndex (Get-NetAdapter).InterfaceIndex /u2013ServerAddresses ("172.31.15.30")

将其传递到Windows实例时,它无法识别/u2013,并且会出错。

如何确保传入的行保留破折号,而不是将其解码为Unicode。

2 个答案:

答案 0 :(得分:0)

   <div class="col">
     <label for="lblPartyName">Image File</label>
         <div class="col-4">
           <img src="@Url.Content(Model.imagePath)" style="margin:10px; border:solid 1px" height="20" width="20" id="ImagePreview" />
           <input type="file" name="imageFile" accept="image/jpeg,image/png" onchange="ShowImagePreview(this,document.getElementById('ImagePreview'))" />

         </div>
     </div>

基于其他需要转义其他字符的人:AWS Cloudformation output double quotes in a file using Fn::Join

答案 1 :(得分:0)

\u2013unicode dash character的另一种类型。您的编辑器可能使用了它,因为它看起来更好。尝试使用记事本或简单的编辑器编辑源代码,然后用适当的破折号替换该Unicode破折号。如果很难输入,可以从Set-DNSClientServerAddress复制。那个看起来不错。