如何使 Amplify CloudFormation 了解在其外部所做的更改
How to make Amplify CloudFormation aware of changes made outside of it
我最后发现 Amplify 无法推送我所做的任何更改,并且不存在 UserPool clientId 异常。
类似
Resource Name: XXXXXXXXXXX (AWS::Cognito::UserPoolClient) Event Type:
update Reason: User pool client does not exist. (Service:
AWSCognitoIdentityProviderService; Status Code: 400; Error Code:
ResourceNotFoundException; Request ID: YYYYYYYYYYYYYYYYYY URL:
https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/xxxxxxxxxxx
我已经在 Amplify Cli 的 Github 问题上解释了我的整个旅程,您可以看到 here,不幸的是,我没有从 Amplify 团队那里得到太多支持,正如您在那里看到的.
我还针对最初遇到的问题创建了一个 Whosebug 问题,您可以查看 here
在对这个问题进行了长达 3-4 天的深入研究之后,由于这个问题阻碍了我的部署,我开始猜测发生了什么:
- 几个月前我已经为我的放大项目添加了授权
- 最后,我注意到一个创建的客户端没有被使用,所以我使用 Cognito 控制台删除了它。
- 我已经好几个月没有更新授权了
- 现在我已经引入了社交身份验证 Amplify 尝试更新它,但由于客户端 ID 不再存在,它不能并引发上述错误。
现在,我尝试更新它的任何操作都失败了,我想原因是 Amplify 的预期与实际的基础设施之间不同步。
每次我 pull --restore
我的环境,我都会用这个无效的客户端 ID 更新我的 amplify-meta.json
(是的,我已经尝试在本地 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 并将其更新为有效的,我猜是这个文件是 Amplify 的单一事实点。
但是没有成功,拉恢复后仍然得到同样的错误ID。
知道如何让 Amplify 再次同步吗?让它知道这个 ClientId 不再存在,只是在 CloudFormation/Templates?
上删除它
Amplify Cli 不支持此功能。
我遇到了同样的问题。
我在云中更新了 Appsync 和 Cognitor,但无法将更改提取到我的项目中。
当我运行放大状态时,它说没有变化。
所以我联系了 AWS 支持,他们说这是即将推出的功能。
解决方案是更改 amplify cli 中的所有内容并在控制台中管理 amplify。不要更改云中的任何内容。
我最后发现 Amplify 无法推送我所做的任何更改,并且不存在 UserPool clientId 异常。
类似
Resource Name: XXXXXXXXXXX (AWS::Cognito::UserPoolClient) Event Type: update Reason: User pool client does not exist. (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: YYYYYYYYYYYYYYYYYY URL: https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/xxxxxxxxxxx
我已经在 Amplify Cli 的 Github 问题上解释了我的整个旅程,您可以看到 here,不幸的是,我没有从 Amplify 团队那里得到太多支持,正如您在那里看到的.
我还针对最初遇到的问题创建了一个 Whosebug 问题,您可以查看 here
在对这个问题进行了长达 3-4 天的深入研究之后,由于这个问题阻碍了我的部署,我开始猜测发生了什么:
- 几个月前我已经为我的放大项目添加了授权
- 最后,我注意到一个创建的客户端没有被使用,所以我使用 Cognito 控制台删除了它。
- 我已经好几个月没有更新授权了
- 现在我已经引入了社交身份验证 Amplify 尝试更新它,但由于客户端 ID 不再存在,它不能并引发上述错误。
现在,我尝试更新它的任何操作都失败了,我想原因是 Amplify 的预期与实际的基础设施之间不同步。
每次我 pull --restore
我的环境,我都会用这个无效的客户端 ID 更新我的 amplify-meta.json
(是的,我已经尝试在本地 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 并将其更新为有效的,我猜是这个文件是 Amplify 的单一事实点。 但是没有成功,拉恢复后仍然得到同样的错误ID。
知道如何让 Amplify 再次同步吗?让它知道这个 ClientId 不再存在,只是在 CloudFormation/Templates?
上删除它Amplify Cli 不支持此功能。
我遇到了同样的问题。 我在云中更新了 Appsync 和 Cognitor,但无法将更改提取到我的项目中。
当我运行放大状态时,它说没有变化。
所以我联系了 AWS 支持,他们说这是即将推出的功能。
解决方案是更改 amplify cli 中的所有内容并在控制台中管理 amplify。不要更改云中的任何内容。