我想通过无服务器框架部署我的 CF 堆栈,但我收到了异常。 所以我通过 aws-cli 验证了 CF 配置,它以 ValidationError 响应。
Resources:
CognitoUserPool:
Type: AWS::Cognito::UserPool
Properties:
UserPoolName: test-pool
CognitoUserPoolClient:
Type: AWS::Cognito::UserPoolClient
Properties:
ClientName: test-client
ExplicitAuthFlows:
- ADMIN_NO_SRP_AUTH
GenerateSecret: false
UserPoolId:
Ref: CognitoUserPool
aws cloudformation validate-template --template-body file://test-template.yml
md5-0884b744ef7ebb7d442c0f51b32b4a9f
An error occurred (ValidationError) when calling the ValidateTemplate operation: Template format error: Unrecognized resource types: [AWS::Cognito::UserPool, AWS::Cognito::UserPoolClient]
这很奇怪,因为我确信 CF 配置是正确的,而且我之前能够在我的旧机器上部署它。 我认为它可能是新的 1.11.113 版本中的错误,所以我在我的旧机器上尝试了它,它在 1.11.84 上工作得很好。 但是,当我将 1.11.113 重新安装到较旧的 1.11.84 时,错误消息仍然存在。 拜托,你能告诉我我做错了什么吗? 谢谢你。
有趣的是我无法复制这个。 你给定的模板在1.11.113
下对我来说很好用。 您能否将--debug
到您的通话中并在此处发布日志,这可能会提供更多关于正在发生的事情的指示。
一般来说,CLI 的版本不应该影响这一点,因为这是我们从服务获得的响应。 我们所做的就是将您的模板发送给他们并打印出我们得到的回复。 除了 CLI 版本之外,这两次调用之间还有什么不同吗?
嗯,我想通了。 我已经配置了AWS_DEFAULT_REGION=us-west-1
并且亚马逊在该地区不支持 Cognito。 当我将其更改为us-east-1
它可以工作。 这种行为在两个版本中都是一样的,我只是碰巧在旧机器上有一个不同的区域。 谢谢你的协助!
真棒很高兴你想通了!
最有用的评论
嗯,我想通了。 我已经配置了
AWS_DEFAULT_REGION=us-west-1
并且亚马逊在该地区不支持 Cognito。 当我将其更改为us-east-1
它可以工作。 这种行为在两个版本中都是一样的,我只是碰巧在旧机器上有一个不同的区域。 谢谢你的协助!