2017-10-24 13 views
0

私が作業している2番目のawsラムダ関数にs3ファイル名の配列を渡す方法を理解する助けが必要です。第1の関数は、ダイナモインデックステーブルに検索要求を発行する氷河のs3ファイルのリストを照会する。 2番目のラムダは、一度に1つずつ配列内の同じファイル名パラメータを取得し、ラムダ関数を呼び出しますが、4時間後にGlacierから取得されたファイルごとに、ラムダまたは他のAWSサービスでこれを行う微妙な方法がありますJavaScriptを使用して?どんな助けもありがとう!ありがとう!ラムダをパラメータで4時間後に呼び出す

+1

関連:https://stackoverflow.com/questions/36098943/what-glacier-vault-does-s3-default-to and https://stackoverflow.com/questions/34835209/how-does -aws-transfer-s3-objects-to-glacier-archives-when-you-use-lifecycle-archです。 – jarmod

答えて

2

氷河の回収作業は4時間以内に完了するとは保証されません(アーカイブは一般的にアクセス可能になります)。within 3–5 hoursが保証されるわけではありません。また、ラムダ関数の呼び出しを将来予定することは、この問題を解決する最善の方法ではありません。

Glacier notificationsを使用する必要があります。氷河の回収作業が完了すると、SNSトピックにメッセージを投稿できます。 SNSとLambdaは統合されているので、SNS通知からLambda関数を呼び出すことができます。

Glacier SDKは、完了時にinitiate_job()経由でSNS通知によるアーカイブ取得(およびインベントリ検索)をサポートしています。

編集:検索通知でGlacier Vault名を指定する必要がありますが、ライフサイクル管理でこのVault名が公開されていない(AWSサービスの内部にあるため)S3オブジェクトがlifecycle management経由で氷河にアーカイブされた場合、 。 [ありがとう@Mark B]

+1

私はS3 life-cylce氷河のストレージクラスを使用していますか?氷河の告知はあるのですか、それとも氷河の宝のためのものなのですか? – Calvin

+0

GLACIERは単一のS3ストレージクラスです(Glacierはサービス自体です)。 「ライフサイクル氷河」または「氷河保管庫」のストレージクラスはありません。ボールトは、アーカイブを格納するコンテナです。ライフサイクル(管理)とは、ストレージクラス間のオブジェクトの移行を自動化する一連のルールを使用するプロセスです(*氷河からではありません)。 – jarmod

+0

@jarmod私は、S3のライフサイクルルールがオブジェクトをGlacierストレージクラスに移行させた後、boto3 's3_client.restore_object()'の呼び出しのようなものでオブジェクトの取得を開始すると、氷河の通知を受け取りますか?または他の通知?私は個人的にどのように表示されません。基礎となるGlacierボールトにアクセスできないので、通知を設定することはできません。 S3には、「リストアが完了しました」というイベント通知はありません。 –

関連する問題