Vault를 삭제하는 방법 (AWS Glacier)
이 요지는 AWS Glacier Vault
AWS CLI 로 제거하기위한 몇 가지 팁을 제공합니다 (예 : https://aws.amazon.com/en/cli/ ).
1 단계 / 인벤토리 검색
$ aws glacier initiate-job --job-parameters "{\"Type\": \"inventory-retrieval\"}" --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
3/5 시간 동안 기다리십시오… :-(
새로운 단계를 위해서는을 받아야합니다 JobId
. 검색 인벤토리가 완료되면 다음 명령을 사용하여 인벤토리를 얻을 수 있습니다.aws glacier list-jobs --vault-name YOUR_VAULT_NAME --region YOUR_REGION
2 단계 / ArchivesId 가져 오기
$ aws glacier get-job-output --job-id YOUR_JOB_ID --vault-name YOUR_VAULT_NAME --region YOUR_REGION ./output.json
만나다. Amazon Glacier에서 Vault 인벤토리 다운로드
당신은 모든 얻을 수 ArchiveId
에 ./output.json
파일.
3 단계 / 아카이브 삭제
파워 쉘
에서 @vinyar
$input_file_name = 'output.json'
$vault_name = 'my_vault'
# $account_id = 'AFDKFKEKF9EKALD' #not used. using - instead
$a = ConvertFrom-Json $(get-content $input_file_name)
$a.ArchiveList.archiveid | %{
write "executing: aws glacier delete-archive --archive-id=$_ --vault-name $vault_name --account-id -"
aws glacier delete-archive --archive-id=$_ --vault-name $vault_name --account-id - }
파이썬
에서 @robweber
ijson , 대신 파일에서 스트림으로 읽습니다. pip로 설치할 수 있습니다
import ijson, subprocess
input_file_name = 'output.json'
vault_name = ''
account_id = ''
f = open(input_file_name)
archive_list = ijson.items(f,'ArchiveList.item')
for archive in archive_list:
print("Deleting archive " + archive['ArchiveId'])
command = "aws glacier delete-archive --archive-id='" + archive['ArchiveId'] + "' --vault-name " + vault_name + " --acc$
subprocess.run(command, shell=True, check=True)
f.close()
PHP
에서 @Remiii
<?php
$file = './output.json' ;
$accountId = 'YOUR_ACCOUNT_ID' ;
$region = 'YOUR_REGION' ;
$vaultName = 'YOUR_VAULT_NAME' ;
$string = file_get_contents ( $file ) ;
$json = json_decode($string, true ) ;
foreach ( $json [ 'ArchiveList' ] as $jsonArchives )
{
echo 'Delete Archive: ' . $jsonArchives [ 'ArchiveId' ] . "\n" ;
exec ( 'aws glacier delete-archive --archive-id="' . $jsonArchives [ 'ArchiveId' ] . '" --vault-name ' . $vaultName . ' --account-id ' . $accountId . ' --region ' . $region , $output ) ;
echo $output ;
}
Mark : 아카이브를 삭제 한 후 볼트 인벤토리를 즉시 다운로드하면 Amazon Glacier가 하루에 한 번만 볼트 인벤토리를 준비하기 때문에 삭제 된 아카이브가 목록에 포함될 수 있습니다.
만나다. Amazon Glacier에서 아카이브 삭제
4 단계 / 볼트 삭제
$ aws glacier delete-vault --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
원래 @Remiii의 요지
Ok 몇 년 전에 계정을 닫고 몇 달 전에 다시 열었고 아마존에서 내 계정에 3TB가 남아있는 것을 추측 한 후 지난 몇 달 동안 요금이 청구되었습니다.
그래서이 질문으로 돌아와서 다음을 발견했습니다.
- mt-aws-glacier는 최신 우분투에서 설정하는 것이 거의 불가능합니다 .12.04로갔습니다 .awscli는 없습니다. 그러면 14.04에서 내 서명에 대한 오류가 발생했습니다 ...
- Arq 답변은 Arq 5에서 더 이상 관련이 없습니다.
- 그런 다음 위의 요점을 발견 하고 커뮤니티에 더 좋기 때문에 여기에 복사했습니다.
- 클라우드 베리를 사용해 보았는데 제대로 작동하는 것 같습니다. 여기 4 ~ 10 시간 안에 업데이트하겠습니다.