私の具体的な問題はthis guysと同じですが、彼の答えは十分ではなく、テラフォームにもこれ以上解決できる可能性のある新機能が追加されています。aws_s3_bucket_objectデータソースを持つs3オブジェクトのリストを取得するにはどうすればよいですか?
問題は、私はaws_elastic_beanstalk_application_versionを使ってBeanstalkのバージョンを登録していますが、新しいバージョンを登録する前に古いバージョンを削除しています。これはaws_elastic_beanstalk_application_versionが毎回置き換えられるためです。私が行う必要があるのは、新しいものを生成することです。
"count"とaws_s3_bucket_objectデータソースでこれを実行しようとしていますが、s3オブジェクトをリストとして取得する方法がわかりません。私は、ワイルドカードを試してみましたが、それは動作しません:
data "aws_s3_bucket_object" "eb-bucket-data" {
bucket = "mybucket"
key = "*"
}
resource "aws_elastic_beanstalk_application_version" "default" {
count = "${length(data.aws_s3_bucket_object.eb-bucket-data.id)}"
name = "${element(data.aws_s3_bucket_object.eb-bucket-data.key, count.index)}"
application = "myapp"
bucket = "mybucket"
key = "${element(data.aws_s3_bucket_object.eb-bucket-data.key, count.index)}"
}
:https://github.com/terraform-providers/terraform-provider-aws/issues/2634 – red888