Я пытаюсь создать задание передачи хранилища через Terraform как:
resource "google_storage_transfer_job" "goout_storage_backup" {
description = "my-transfer-job"
project = "my-project"
transfer_spec {
object_conditions {
max_time_elapsed_since_last_modification = "86400s"
}
transfer_options {
delete_objects_from_source_after_transfer = false
delete_objects_unique_in_sink = false
overwrite_objects_already_existing_in_sink = true
}
gcs_data_source {
bucket_name = "source"
}
gcs_data_sink {
bucket_name = "target"
}
}
schedule {
schedule_start_date {
year = 1970
month = 01
day = 1
}
start_time_of_day {
hours = 4
minutes = 27
seconds = 0
nanos = 42
}
}
}
С помощью этого скрипта легко управлять моими существующими заданиями, однако Terraform отказывается создавать какие-либо новые задания передачи:
Ошибка: googleapi: ошибка 400: не удалось получить местоположение источника корзины Google Cloud Storage (GCS) из-за недостаточных разрешений. Убедитесь, что предоставлены необходимые разрешения., FailedPrecondition
Однако мой пользователь owner
, и я также безуспешно пытался назначить Storage Transfer Admin
и Storage Admin
.
gsutil cp
между этими сегментами, чтобы передать что-то вроде тестового файла? Пример команды после созданияfile1.txt
будетgsutil cp gs://<BUCKET1>/file1.txt gs://<BUCKET2>/
. Я также видел, что блок ресурсов может принимать входные данныеproject
. Если вы еще не объявили проект, в котором находятся сегменты, вы можете попробовать установитьproject = <PROJECT_ID>
. - person rk92   schedule 24.06.2021