テラフォームは初めてなので、おそらくこのように機能するはずはありません。aws_s3_bucket_object を使用してパッケージをバケットにアップロードしたいと考えています。これはアプリのデプロイの一部です。デプロイごとにパッケージを変更する予定で、古いバージョンを保持したいと考えています。
resource "aws_s3_bucket_object" "object" {
bucket = "mybucket-app-versions"
key = "version01.zip"
source = "version01.zip"
}
しかし、将来の展開のためにこれを実行した後、バージョン 02 をアップロードしてからバージョン 03 などをアップロードする必要があります。Terraformは、古い zip を新しい期待される動作に置き換えます。
しかし、テラフォームが古いバージョンを破壊しないようにする方法はありますか? これはここでサポートされているユースケースですか、それともテラフォームの使用方法ではありませんか? 私がここでやろうとしているようなことを行うための公式サポートが terraform にない場合、醜いハックでこれを強制したくありません。
もちろん、スクリプトを介して S3 API を呼び出すこともできますが、このアプリの残りの terraform 定義と共にこれを定義することをお勧めします。