DistributionDir とは? (Zipping artifacts failed. This is often due to an invalid distribution directory path.のエラー)

検索で引っ掛からなかったので、書きました。
amplify/.config/project-config.json のフォルダの中に、DistributionDirと書かれていますが、これは何を意味しているのか、気になったので調べました。

project-config.json

project-config.jsonはamplify initを実行すると作成されます。以下のような内容です。
project-config.jsonの中に、DistributionDirが出てきます。

{
  "projectName": "aaaaaaaa",
  "version": "3.1",
  "frontend": "javascript",
  "javascript": {
    "framework": "react",
    "config": {
      "SourceDir": "src",
      "DistributionDir": "build",
      "BuildCommand": "npm run-script build",
      "StartCommand": "npm run-script start"
    }
  },
  "providers": [
    "awscloudformation"
  ]
}

amplify initのコマンド実行時に質問されるのですが、
Distribution Directory Path:
という質問に対して入力した内容がproject-config.jsonファイルのDistributionDirに保存されます。
そして、DistributionDirは配布用ディレクトリパスの場所を意味しています。

配布用ディレクトリパスの場所 とは?

では、配布用ディレクトリパスとは、具体的に何のための指定なのでしょうか。
結果的に分かったことを書くと、配布用ディレクトリパスがルートディレクトリに存在しないと、amplify publishのコマンドが失敗します。具体的には、以下のようなエラーが表示されます。

$ amplify publish

~省略~

✖ Zipping artifacts failed. This is often due to an invalid distribution directory path. Run "amplify configure project" to check if your Distribution Directory is pointing to a valid path.
An error occurred during the publish operation: Unknown error occurred.

このエラーを回避するためには、上記で書いた project-config.json の DistributionDir を修正します。
自分の場合、"DistributionDir": “build"を"DistributionDir": “.next"に変更したら、エラーが解決しました。
めでたし、めでたし。

Amplify does not support Manual Deploys for SSR.

一難去ってまた一難、amplify publish で Zipping artifacts は completed. になり解決しましたが、今度はAmplify does not support Manual Deploys for SSR. というエラーになりました。これについては、内容がSSRの場合は、手動デプロイはできないという内容なので、githubにpushした時にamplifyに自動デプロイするように設定していれば解決すると思います。
つまり、SSRの場合は、amplify publishは実行エラーになるということになります。(マジで?)

感想

とりあえず、分かった内容を公開しておきました。参考になれば。