📝

[小ネタ] Amplify Hosting のビルド中に Amplify アプリを自己削除できるか

に公開

結論

できました。
また、ビルドプロセスは最後まで実行されることも確認できました。

検証

以下の設定で検証しました。

  • Amplify Hosting の IAM ロール: AdministratorAccess 権限を付与
  • Git プロバイダー: CodeCommit
  • CodeCommit: index.html のみをプッシュ
  • amplify.yml: 以下の通り
version: 1
frontend:
  phases:
    build:
      commands:
        - echo "Deleting Amplify app..."
        - aws amplify delete-app --app-id $AWS_APP_ID
  artifacts:
    baseDirectory: /
    files:
      - '**/*'
  cache:
    paths: []

上記以外はデフォルト設定です。
この状態でビルドを実行したところ、ビルドログではプロジェクトの削除後もビルドが続いていました。

2025-10-08T01:00:06.132Z [INFO]: # Build environment configured with Standard build compute type: 8GiB Memory, 4vCPUs, 128GB Disk Space
2025-10-08T01:00:06.359Z [INFO]: # Cloning repository: https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test2
2025-10-08T01:00:29.217Z [INFO]: 
2025-10-08T01:00:29.311Z [INFO]: Cloning into 'test2'...
                                 remote: 
remote: Counting objects: 0        
remote: Counting objects: 3        
remote: Counting objects: 3        
remote: Counting objects: 3, done.
2025-10-08T01:00:29.312Z [INFO]: # Checking for Git submodules at: /codebuild/output/src2727490205/src/test2/.gitmodules
2025-10-08T01:00:29.316Z [INFO]: # Retrieving environment cache...
2025-10-08T01:00:29.364Z [WARNING]: ! Unable to write cache: {"code":"ERR_BAD_REQUEST","message":"Request failed with status code 404"})}
2025-10-08T01:00:29.364Z [INFO]: ---- Setting Up SSM Secrets ----
2025-10-08T01:00:29.364Z [INFO]: SSM params {"Path":"/amplify/d1j72z2p2xczwk/main/","WithDecryption":true}
2025-10-08T01:00:30.135Z [INFO]: # No package override configuration found.
2025-10-08T01:00:30.138Z [INFO]: # Retrieving cache...
2025-10-08T01:00:30.183Z [INFO]: # Retrieved cache
2025-10-08T01:00:34.214Z [INFO]: ## Starting Backend Build
                                 ## Checking for associated backend environment...
                                 ## No backend environment association found, continuing...
                                 ## Completed Backend Build
2025-10-08T01:00:34.222Z [INFO]: {"backendDuration": 0}
                                 ## Starting Frontend Build
                                 # Starting phase: build
                                 # Executing command: echo "Deleting Amplify app..."
                                 Deleting Amplify app...
                                 # Executing command: aws amplify delete-app --app-id $AWS_APP_ID
2025-10-08T01:00:35.456Z [INFO]: {
                                 "app": {
                                 "appId": "d1j72z2p2xczwk",
                                 "appArn": "arn:aws:amplify:ap-northeast-1:012345678901:apps/d1j72z2p2xczwk",
                                 "name": "test2",
                                 "repository": "https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test2",
                                 "platform": "WEB",
                                 "createTime": 1759885184.674,
                                 "updateTime": 1759885184.674,
                                 "iamServiceRoleArn": "arn:aws:iam::012345678901:role/service-role/AmplifyCodeCommitRole-18893ee4-1bc9-4242-9fe7-fef26c4b1132",
                                 "defaultDomain": "d1j72z2p2xczwk.amplifyapp.com",
                                 "enableBranchAutoBuild": false,
                                 "enableBranchAutoDeletion": false,
                                 "enableBasicAuth": false,
                                 "customRules": [
                                 {
                                 "source": "/<*>",
                                 "target": "/index.html",
                                 "status": "404-200"
                                 }
                                 ],
                                 "productionBranch": {
                                 "status": "RUNNING",
                                 "branchName": "main"
                                 },
                                 "buildSpec": "version: 1\nfrontend:\n  phases:\n    build:\n      commands:\n        - echo \"Deleting Amplify app...\"\n        - aws amplify delete-app --app-id $AWS_APP_ID\n  artifacts:\n    baseDirectory: /\n    files:\n      - \"**/*\"\n  cache:\n    paths: []\n",
                                 "customHeaders": "",
                                 "enableAutoBranchCreation": false,
                                 "repositoryCloneMethod": "SIGV4",
                                 "cacheConfig": {
                                 "type": "AMPLIFY_MANAGED_NO_COOKIES"
                                 },
                                 "jobConfig": {
                                 "buildComputeType": "STANDARD_8GB"
                                 }
                                 }
                                 }
2025-10-08T01:00:35.544Z [INFO]: # Completed phase: build
                                 ## Completed Frontend Build
2025-10-08T01:00:35.555Z [INFO]: ## Build completed successfully
2025-10-08T01:00:35.556Z [INFO]: # Starting caching...
2025-10-08T01:00:35.556Z [INFO]: Nothing to cache
2025-10-08T01:00:35.556Z [INFO]: # Caching completed
2025-10-08T01:00:35.560Z [INFO]: # Starting build artifact upload process...
2025-10-08T01:00:36.751Z [INFO]: # Uploading build artifact '__artifacts.zip'...
2025-10-08T01:00:36.853Z [INFO]: # Build artifact upload completed
2025-10-08T01:00:36.853Z [INFO]: # Starting environment caching...
2025-10-08T01:00:36.854Z [INFO]: # Environment caching completed

まとめ

今回は Amplify Hosting のビルド中に Amplify アプリを自己削除できるかという内容を紹介しました。
どなたかの参考になれば幸いです。

Discussion