如何通过Terraform启用“Cognito用户池”选项在应用程序客户端设置中?

17

在"supported_identity_providers"参数中,我可以指定“Facebook”并且它有效。然而,当我尝试指定名称、ID和“Cognito User Pool”这个词作为支持的身份提供者参数时,它一直抛出验证错误。

进入图像描述

我想通过terraform启用箭头所指的选项。为了在"supported_identity_providers"参数中传递什么值?


8
一个你可以使用的技巧是勾选那个复选框,然后运行 terraform plan,它会刷新当前状态并告诉你需要更改哪些资源以符合你的代码。然后你就可以看到勾选该复选框时该资源的哪个属性发生了变化,并据此更新你的代码。 - Brandon Miller
@BrandonMiller 工作了!谢谢。太棒的想法。 - Karthik Priyadarshan
1
如果您可以导入资源,对于您以前没有在Terraform中设置的内容,它也可以正常工作。我经常使用它! - Brandon Miller
1个回答

41

简短回答

resource "aws_cognito_user_pool_client" "<name>" {
  ...
  supported_identity_providers = ["COGNITO", ...]
  ...
}

详细信息

创建用户池客户端的AWS API可以在此处找到,terraform文档可以在此处找到。

两者都缺少标准提供程序(Cognito、Amazon、Google、Facebook)的默认名称。

我无法在Amazon文档中找到有关用户池客户端的SupportedIdentityProviders值的默认名称,只能在AWS API文档这里看到相应的模式。

在编写terraform代码时,我需要在AWS控制台中切换值,然后使用CLI检索值:

aws cognito-idp describe-user-pool-client --user-pool-id <pool-id> --client-id <client-id>

对于cognito,这将返回COGNITO,社交提供程序是GoogleFacebookLoginWithAmazon。如果您正在使用OIDC/SAML,则是您配置的提供程序名称


3
虽然这段代码可能回答了问题,但提供有关它是如何解决问题的“如何”和/或“为什么”的额外上下文将有助于提高答案的长期价值。请记住,您正在为未来的读者回答问题,而不仅仅是现在提问的人!请[编辑]您的答案以添加说明,并指出适用的限制和假设。还可以添加一个文档链接,解释这个问题的方案。此外,我认为最后应该是一个} - Dev-iL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接