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

CloudFormation YAML中如何用Fn:Sub在多行字符串引用Cognito身份池Ref

解决CloudFormation中用Fn::Sub在多行字符串引用IdentityPool ID的问题

没问题,我来帮你搞定这个需求!要在AmplifyConfig的多行JSON字符串里引用IdentityPool的ID,你只需要用Fn::Sub(或者简写!Sub)包裹你的多行字符串,然后在字符串里直接用${IdentityPool}来引用资源的逻辑ID即可——因为Fn::Sub会自动把这个变量替换为对该资源的Ref结果,而AWS::Cognito::IdentityPool的Ref刚好返回身份池ID,完全匹配你的需求。

下面是完整的Outputs配置示例:

Outputs:
  AmplifyConfig:
    Description: key/values to be passed to Amplify.configure(config);
    Value: !Sub |
      {
        "aws_cognito_identity_pool_id": "${IdentityPool}",
        "aws_user_pools_web_client_id": "${UserPoolClient}",
        "aws_region": "${AWS::Region}"
        // 其他Amplify配置项按需补充
      }

关键细节说明:

  • !Sub与多行字符串的配合:保留|符号表示多行字符串,!Sub会解析整个字符串中的变量占位符
  • 变量占位符规则:${资源逻辑ID}会自动被替换为该资源的Ref返回值,这里${IdentityPool}就对应你定义的IdentityPool资源的ID
  • JSON格式注意:因为是字符串内的JSON,确保使用双引号,避免语法错误
  • 扩展用法:除了自定义资源,你还可以引用CloudFormation内置变量(比如${AWS::Region})或者自定义参数、输出值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:12:26