aws-cdk 中的 !Ref 函数

!Ref function in aws-cdk

如何调用aws-cdk栈中的!Ref函数?我有一个 UserPool 资源和 UserPoolClientResource with userPoolId 属性:

const userPool = new cognito.cloudformation.UserPoolResource(this, userPoolResourceName, {
  userPoolName,
  usernameAttributes: ['email'],
  autoVerifiedAttributes: ['email'],
  policies: {
    passwordPolicy: {
      minimumLength: 8,
      requireLowercase: false,
      requireNumbers: false,
      requireSymbols: false,
      requireUppercase: false
    }
  }
});

new cognito.cloudformation.UserPoolClientResource(this, userPoolClientResourceName, {
  userPoolId: `!Ref ${userPool.id}`, // failed
  clientName: userPoolClientName
});

CDK 重命名 Ref 使它们看起来像任何其他属性,并且它们的名称是根据资源名称和 Ref 类型自动生成的(通常是 NameIdArn).

在您遇到的特定情况下,您需要使用 UserPoolResource.userPoolId 属性(userPool 是资源类型名称,IdRef 类型)。