繁体   English   中英

AWS Amplify:当资源已被部分删除时,如何删除环境?

[英]AWS Amplify: How to delete the environment, when resources are already partially deleted?

TL;DR:当服务的某些资源已在控制台中手动删除时,如何删除放大环境?

所以,我参加了一个关于 Egghead 的课程来学习aws amplify CLI。 不幸的是,它没有教你如何删除环境(否则它很好。)。 我当时的谷歌搜索说你必须手动删除资源。 我尝试 (/did) 对于我使用的资源,我删除了 CLI 的用户帐户 (♂️),“删除”了 cognito 用户池(它仍然显示为amplify status ),删除了 DynamoDB 和 AppSync API(也仍然出现)。

现在正如我在运行amplify status时提到的那样,我得到:

| Category | Resource name   | Operation | Provider plugin   |
| -------- | --------------- | --------- | ----------------- |
| Auth     | cognito559c5953 | No Change | awscloudformation |
| Api      | AmplifyTodoApp  | No Change | awscloudformation |

我想知道——因为我以为我删除了它们——它们还存在吗?

所以我用谷歌搜索了更多。 现在事实证明还有命令amplify delete会自动删除与您的放大项目关联的所有资源。 由于我删除了用于该项目的帐户,因此该命令会抛出:

The security token included in the request is invalid.

有什么方法可以在没有用户的情况下删除这些资源? 这些资源是否仍然在线(因为我手动删除了它们并且它们没有显示在在线控制台中 - 即使在 CloudFront 控制台中)? 还是我必须删除我的整个 AWS 账户? 我不想有一天为这些资源支付大笔费用。

编辑:我还删除了 S3 存储桶。

编辑2:所以我设法使用另一个配置文件(通过更改local-aws-info.json )所以我不再收到安全请求失败错误。 现在我得到错误:

Missing region in config

amplify status仍然产生相同的响应。

放大cli通过在项目中区分amplify/#current-cloud-backendamplify/backend文件夹来确定状态。 因此,当您运行amplify status您看到的内容在您的情况下并不准确。

如果您已创建多个环境(在不同区域),请确保也删除它们。 如果不能使用amplify delete ,删除它们的最简单方法是转到创建环境的区域中的云形成并删除根堆栈,这样可以确保删除该堆栈创建的所有资源。

PS: cli在初始化时为authunauth用户创建角色,并为资源创建策略(如果存在则不会花费任何成本)。 如果你不想让它们闲逛,你可以删除它们。

当一些资源被手动删除时(S3 & Cloudformation)然后

$amplify delete  

给出以下:

Unable to remove env: dev because deployment bucket amplify-amplifyAPPName-dev-XYZ-deployment does not exist or has been deleted.
  
Stack has already been deleted or does not exist

请看这个:

C:user\samadhan\Amplify-Projects\amplifyapp-demo>amplify delete

? Are you sure you want to continue? This CANNOT be undone. (This will delete all the environments of the project from the cloud and wi
pe out all the local files created by Amplify CLI) Yes
- Deleting resources from the cloud. This may take a few minutes...
Deleting env: dev.
Unable to remove env: dev because deployment bucket amplify- 
amplifyinitdemo-dev-131139-deployment does not exist or has been deleted.

Stack has already been deleted or does not exist

\ Deleting resources from the cloud. This may take a few minutes...App 
 dfwx13s2bgtb1 not found.

App dfwx13s2bgtb1 not found.
√ Project already deleted in the cloud.
Project deleted locally.

App Amplify App 仍显示在控制台中 无法从控制台中删除。 请看一下 : Amplify App Console Unable to Delete App 错误

解决方案:使用 AWS CLI 您可以解决此问题。 步骤 1) 确保 AWS CLI 配置了相同的 AWS 账户,否则请创建 IAM 用户并使用相同的区域配置它

C:user\samadhan\Amplify-Projects\amplifyapp-demo>aws configure
AWS Access Key ID [****************HZHF]: ****************ICHK
AWS Secret Access Key [****************iBJl]:****************SnaX
Default region name [ap-south-1]: ap-south-1
Default output format [json]: json

步骤 2 ) 使用以下 AWS CLI 命令。

C:user\samadhan\Amplify-Projects\amplifyapp-demo>>aws amplify help
Available Commands
******************
* create-app
* create-backend-environment
* create-deployment
* delete-app
* delete-backend-environment
* get-app
* list-apps
* list-backend-environments

C:user\samadhan\Amplify-Projects\amplifyapp-demo>aws amplify list-apps
{
    "apps": [
        {
        "appId": "d39pvb2qln4v7l",
        "appArn": "arn:aws:amplify:ap-south-1:850915XXXXX:apps/d39pvb2qln4v7l",
        "name": "react-amplify-demo-project",
            "tags": {},
            "platform": "WEB",
            "createTime": 1640206703.371,
            "updateTime": 1640206703.371,
            "environmentVariables": {
                "_LIVE_PACKAGE_UPDATES": "[{\"pkg\":\"@aws-amplify/cli\",\"type\":\"npm\",\"version\":\"latest\"}]"
            },
        {
            "appId": "d2jsl78ex1asqy",
            "appArn": "arn:aws:amplify:ap-south-1:85091xxxxxxxx:apps/d2jsl78ex1asqy",
            "name": "fullstackapp",
            "tags": {},
            "platform": "WEB",
            "createTime": 1640250148.974,
            "updateTime": 1640250148.974,
            "environmentVariables": {
                "_LIVE_PACKAGE_UPDATES": "[{\"pkg\":\"@aws-amplify/cli\",\"type\":\"npm\",\"version\":\"latest\"}]"
            }
        }

步骤 3) 使用以下 CLI 命令删除 App 或 App Env

C:user\samadhan\Amplify-Projects\amplifyapp-demo>aws amplify delete-app --app-id d39pvb2qln4v7l
{
    "app": {
        "appId": "d39pvb2qln4v7l",
        "appArn": "arn:aws:amplify:ap-south-1:8509xxxxx:apps/d39pvb2qln4v7l",
        "name": "react-amplify-demo-project",
        "repository": "https://gitlab.com/samadhanfuke/react-amplify-demo-project",
        "platform": "WEB",
        "createTime": 1639077857.194,
        "updateTime": 1639077857.194,
        "iamServiceRoleArn": "arn:aws:iam::850915xxxx:role/amplifyconsole-backend-role",
        "environmentVariables": {
            "_LIVE_UPDATES": "[{\"name\":\"Amplify CLI\",\"pkg\":\"@aws-amplify/cli\",\"type\":\"npm\",\"version\":\"latest\"}]"
        },
        "defaultDomain": "d39pvb2qln4v7l.amplifyapp.com",
        "enableBranchAutoBuild": false,
        "enableBranchAutoDeletion": false,
        "enableBasicAuth": false,
        "customRules": [
            {
                "source": "/<*>",
                "target": "/index.html",
                "status": "404-200"
            }
        ],
        "productionBranch": {
            "lastDeployTime": 1639078272.607,
            "status": "SUCCEED",
            "branchName": "preview"
        },
        "buildSpec": "version: 1\nbackend:\n  phases:\n    # IMPORTANT - Please verify your build commands\n    build:\n      commands:\n        - '# Execute Amplify CLI with the helper script'\n        - amplifyPush --simple\nfrontend:\n  phases:\n    build:\n      commands: []\n  artifacts:\n    # IMPORTANT - Please verify your build output directory\n    baseDirectory: /\n    files:\n      - '**/*'\n  cache:\n    paths: []\n",
        "customHeaders": "",
        "enableAutoBranchCreation": false
    }
}

已成功删除环境的 Amplify 应用程序。 签入 Amplify 控制台。

截至 2022 年 9 月 26 日,已发布多个更新,修复了删除应用程序/后端的问题,包括已删除 s3 存储桶或 cloudformation 堆栈的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM