我正在使用无服务器框架来创建 Cognito 用户池,根据我正在部署的阶段,我想要域名前缀,如myapp-dev
、myapp-staging
等。我在serverless.yml
中使用的代码是这样的:
CognitoUserPoolDomain:
Type: AWS::Cognito::UserPoolDomain
Properties:
Domain: myapp-${self:custom_stage}
UserPoolId:
Ref: CognitoUserPool
和
custom:
stage: ${opt:stage, self:provider.stage}
${self:custom_stage}
变量适用于所有其他资源,但不适用于域名,因为它抱怨非法字符。有没有其他方法可以做到这一点?
查看 AWS 文档,我想说您的问题不在于使用变量"${self:custom_stage}",而在于您为名称提供了一个没有顶级域伴随的字符串。尝试在名称中添加后缀(例如:.com(。
事实证明,我使用的真实姓名而不是myapp
不被接受,因为它包含数字字符。我已经删除了它们,现在可以工作了。
不过,它不知道为什么它不接受数字字符,因为文档说可以使用它们。