amazon-web-services - 通过 CloudFormation 部署 AWS UserPool 并更新属性
问题描述
如果您通过 CloudFormation 部署 UserPool,例如:
Resources:
UserPool:
Type: 'AWS::Cognito::UserPool'
Properties:
...
Schema:
- Name: email
AttributeDataType: String
Mutable: true
Required: true
然后更新属性以使其成为name
必需:
Schema:
- Name: email
AttributeDataType: String
Mutable: true
Required: true
- Name: name
AttributeDataType: String
Mutable: true
Required: true
AWS 认为这name
是一个自定义属性并失败:
当前不支持必需的自定义属性。(服务:AWSCognitoIdentityProviderService;状态代码:400;错误代码:InvalidParameterException;请求 ID:...)
这只是一个失败的更新,部署一个干净的堆栈正确地将标准属性email
和name
标准属性设置为必需。
有没有办法让更新成功?
解决方案
不幸的是,这是来自 CloudFormation 的某种错误。与其他问题非常相似,例如更新具有多个索引的 DynamoDB 表。
进行更新的唯一可行方法是分两步进行:
- 删除必须更改的属性(在您的情况下
name
),部署 CloudFormation - 添加具有正确值的属性(因此
Require: true
在您的情况下添加),部署 CloudFormation
如前所述,有很多与该案例类似的问题,您最好将您的问题发送给 AWS 以获得支持并修复错误。
推荐阅读
- python - 如何从上下文菜单和文件名中打开 CMD 作为 Sublime Text 3 上的 cmd 输出?
- reflection - 如何使用 ID3D12ShaderReflection::GetVariableByName 方法
- typescript - 使用角度和打字稿导航到上一个页面等待数据
- angular - 在相同类型的两个不同类对象上使用角度插值就像它们是同一个对象
- java - Android Studio 更新问题 - 连接失败
- scala - 我可以对列执行哪些操作
- javascript - 保存到变量时,Javascript对象值自动更改
- angular - ASP.Net Core - IApplicationBuilder.Map、SPA 和静态文件
- c - MPI C如何访问其他级别的结构/变量
- r - 如果任何连续值不满足阈值,则删除 ID