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

如何在AWS::Cognito::UserPoolUICustomizationAttachment模板中添加Logo?

正确通过CloudFormation YAML配置Cognito用户池UI定制Logo的方法

核心前提

AWS::Cognito::UserPoolUICustomizationAttachment的ImageFile属性要求的是图片文件二进制内容的Base64编码字符串,不是图片URL,也不是URL的Base64编码——这是你之前尝试失败的核心原因。

步骤1:生成正确的Base64编码

直接对本地的图片文件进行Base64编码,不要处理图片链接:

  • Mac/Linux终端:
    base64 -i your-logo.png > logo-base64.txt
    
  • Windows PowerShell:
    [Convert]::ToBase64String((Get-Content -Path "your-logo.png" -Encoding Byte)) | Out-File "logo-base64.txt"
    

注意:图片必须是PNG或JPG格式,文件大小不超过100KB,尺寸建议在120x120到300x300之间,避免显示异常。

步骤2:在YAML模板中配置

将生成的Base64字符串直接填入ImageFile字段。如果字符串过长,用YAML的折行符|保持格式可读性:

Resources:
  # 假设你已经定义了用户池和客户端
  MyUserPool:
    Type: AWS::Cognito::UserPool
    Properties:
      # 你的用户池配置

  MyUserPoolClient:
    Type: AWS::Cognito::UserPoolClient
    Properties:
      UserPoolId: !Ref MyUserPool
      # 你的客户端配置

  UserPoolUICustomization:
    Type: AWS::Cognito::UserPoolUICustomizationAttachment
    Properties:
      UserPoolId: !Ref MyUserPool
      # 可选:如果要针对特定客户端定制,填写ClientId
      ClientId: !Ref MyUserPoolClient
      # 填入图片的Base64编码内容
      ImageFile: |
        iVBORw0KGgoAAAANSUhEUgAAADIA...(完整的Base64字符串)
      # 可选:自定义CSS
      CSS: ""

常见错误排查

  • 不要把图片URL转成Base64:Cognito不会解析URL,只会直接使用传入的Base64内容渲染图片。
  • 检查Base64编码完整性:生成后可以用base64 -d logo-base64.txt > test.png(Mac/Linux)验证是否能还原出原图片。
  • 避免多余换行:部分工具生成的Base64会自动换行,YAML的|会保留这些换行,Cognito支持带换行的Base64,但如果出现解析失败,尝试去掉所有换行,用单行字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:42:13