4

我最终发现 Amplify 无法推送我所做的任何更改,并且不存在 UserPool clientId 异常。

就像是

资源名称:XXXXXXXXXXX (AWS::Cognito::UserPoolClient) 事件类型:更新原因:用户池客户端不存在。(服务:AWSCognitoIdentityProviderService;状态代码:400;错误代码:ResourceNotFoundException;请求 ID:YYYYYYYYYYYYYYYYYY URL: https ://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/xxxxxxxxxxx

我已经解释了我在 Amplify Cli 的 Github 问题上的整个过程,你可以在这里看到,不幸的是,我没有得到 Amplify 团队的太多支持,正如你在那里看到的那样。

我还创建了一个 StackOverflow 问题,其中包含我遇到的最初问题,您可以在此处查看

在深入研究这个问题 3-4 天之后,由于这个问题阻碍了我的部署,我猜测发生了什么:

  • 几个月前,我已将身份验证添加到我的放大项目中
  • 最后,我注意到其中一个创建的客户端没有被使用,所以我使用 Cognito 控制台删除了它。
  • 我几个月来没有更新身份验证
  • 现在我已经介绍了社交身份验证 Amplify 尝试更新它,并且由于客户端 ID 不再存在,它不能并引发上述错误。

现在,我尝试更新它的任何东西都失败了,我猜原因是 Amplify 所期望的和实际的基础设施之间不同步。

每次我pull --restore在我的环境中,我都会amplify-meta.json使用这个无效的客户端 ID 进行更新(是的,我已经尝试在本地更改它amplify-meta.json并推送它),例如:

"auth": {
    "myproject": {
        "service": "Cognito",
        "providerPlugin": "awscloudformation",
        "output": {
            "GoogleWebClient": "111111111.apps.googleusercontent.com",
            "AppClientSecret": "aaaaaaaaaaa",
            "UserPoolId": "region-pooId",
            "AppClientIDWeb": "VALID ID",
            "AppClientID": "INVALID ID",
            "FacebookWebClient": "2222222222",
            "IdentityPoolId": "region:Id",
            "IdentityPoolName": "myproject__env",
            "UserPoolName": "mypoolname"
        },
        "lastPushTimeStamp": "2020-05-13T20:48:29.797Z",
        "providerMetadata": {
            "s3TemplateURL": "https://s3.amazonaws.com/myproject-deployment/amplify-cfn-templates/auth/lexis-cloudformation-template.yml",
            "logicalId": "authmyproject"
        },
        "lastPushDirHash": "XXXXXXXXXXXXXX="
    }
},

我的 Cognito 上有一个不同的有效 ClientId,所以我最后的办法是,我尝试直接访问此代码上指向的 S3TemplateURL 并将其更新为有效的,我的猜测是这个文件是单点放大的真相。但没有成功,拉恢复后仍然得到相同的错误ID。

知道如何让 Amplify 再次同步吗?让它意识到这个 ClientId 不再存在并且只是在 CloudFormation/Templates 上摆脱它?

4

1 回答 1

0

Amplify Cli 不支持此功能。

我有同样的问题。我在云中更新了 Appsync 和 Cognitor,我无法将更改拉到我的项目中。

当我运行放大状态时,它说没有变化。

所以我联系了 AWS 支持,他们说这是即将推出的功能。

解决方案是更改 amplify cli 中的所有内容并在控制台中管理 amplify。不要更改云中的任何内容。

于 2020-05-24T14:42:19.360 回答