我们通过 cdk 维护 Cognito 应用程序客户端。在更改应用程序客户端属性时,我们注意到有时 CloudFormation 会重新创建应用程序客户端,有时只是修改现有应用程序客户端而不重新创建新的应用程序客户端。
在我们的案例中,重新创建应用程序客户端是一个问题,因为存在使用身份验证的外部应用程序,并且更改的应用程序客户端 ID
会破坏身份验证。
例如,添加新的可选属性 generateSecret 时值为generateSecret:false
(默认值)CF决定重新创建App客户端。当更改即 token 过期值时,不会发生重新创建。
如何防止重新创建或如何提前识别将要发生重新创建的情况?
最佳答案
此信息可在相关资源的 CloudFormation 文档中找到。在 Attributes
部分中,每个属性都有一个 Update require:
字段,用于描述更新该特定属性时会发生的情况。
来自docs for AWS::Cognito::UserPoolClient
的 GenerateSecret
属性:
Update requires: Replacement
因此,这是 CloudFormation 的限制 - 在更新需要替换的属性时,您无法避免资源替换。
关于aws-cloudformation - 使用 Cloudformation 时如何防止 AWS Cognito 应用程序客户端重新创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73826932/