![](/img/trans.png)
[英]How do I copy an object from one S3 bucket to another only if its clone doesn't already exist in target
[英]Fail safe reading s3_bucket_object with terraform when object doesn't exist
我想安全地從s3_bucket_object
加載數據。 這意味着如果 s3 object 不存在,則提供默認值。 有沒有辦法做到這一點?
如果我指定不存在的密鑰,我會失敗
data "aws_s3_bucket_object" "deployed_builds_s3" {
bucket = my_bucket_name
key = "path/to/file.txt"
}
錯誤:
Error: Failed getting S3 object: NotFound: Not Found
我知道可以使用這樣的本地文件,例如:
locals {
file_content = fileexists("file.txt") ? file("file.txt") : ""
}
s3 對象有類似的東西嗎?
是的,您可以在aws_s3_bucket_objects的幫助下做到這一點。 具體來說,首先您將使用感興趣的 object 鍵調用它:
data "aws_s3_bucket_objects" "my_object" {
bucket = my_bucket_name
prefix = "path/to/file.txt"
}
如果 object 存在,它們的keys
屬性將有 1 個元素。 隨后,您可以有條件地執行aws_s3_bucket_object
,如下所示:
data "aws_s3_bucket_object" "deployed_builds_s3" {
count = length(data.aws_s3_bucket_objects.my_object.keys)
bucket = data.aws_s3_bucket_objects.my_object.keys[0]
key = data.aws_s3_bucket_objects.my_object.bucket
}
如果找到的鍵數大於 0,about 將執行。這是通過count元參數啟用的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.