Amazon S3 でファイルの削除 - Amazon Managed Workflows for Apache Airflow

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon S3 でファイルの削除

このページでは、Amazon Managed Workflows for Apache Airflow 環境の Amazon S3 バケットでのバージョニングの仕組みと、DAG、plugins.zip または requirements.txt ファイルを削除する手順について説明します。

前提条件

このページのステップを完了するには、以下のものが必要です。

  • アクセス許可 — 管理者から環境の AmazonMWAAFullConsoleAccess アクセスコントロールポリシーへのアクセス権が付与されている AWS アカウント 必要があります。さらに、Amazon MWAA 環境は、環境で使用される AWS リソースにアクセスするために実行ロールによって許可されている必要があります。

  • アクセス — ウェブサーバーに直接依存関係をインストールするためにパブリックリポジトリへのアクセスが必要な場合は、環境をパブリックネットワークウェブサーバーアクセスで設定する必要があります。詳細については、「Apache Airflow のアクセスモード」を参照してください。

  • Amazon S3 設定plugins.zip で DAG、カスタムプラグイン、および requirements.txt で Python の依存関係を保存するために使用される Amazon S3 バケット は、Public Access Blocked と Versioning Enabledで構成する必要があります。

バージョン管理の概要

Amazon S3 バケット内の requirements.txt および plugins.zip はバージョニングされています。オブジェクトの Amazon S3 バケットバージョニングが有効になっていて、アーティファクト (plugins.zip など) が Amazon S3 バケットから削除されても、ファイルは完全には削除されません。Amazon S3 でアーティファクトが削除されるたびに、 という名前の 404 (オブジェクトが見つかりません) error/0k ファイルであるファイルの新しいコピーが作成されますI'm not here。Amazon S3 では、これを削除マーカーと呼んでいます。削除マーカーは、他のオブジェクトと同じように、キー名 (またはキー) とバージョン ID を持つファイルの「ヌル」バージョンです。

Amazon S3 バケットのストレージコストを削減するために、ファイルバージョンと削除マーカーを定期的に削除することをお勧めします。「最新ではない」 (以前の) ファイルバージョンを完全に削除するには、ファイルのバージョンを削除してから、そのバージョンの削除マーカーを削除する必要があります。

仕組み

Amazon MWAA は 30 秒ごとにお客様の Amazon S3 バケットに対して同期オペレーションを実行します。これにより、Amazon S3 バケット内のすべての DAG 削除が Fargate コンテナの Airflow イメージと同期されます。

plugins.zip および requirements.txt ファイルについては、Amazon MWAA がカスタムプラグインと Python 依存関係を使用して Fargate コンテナの新しい Airflow イメージをビルドするときに、環境の更新後にのみ変更が行われます。requirements.txt またはplugins.zipファイルの最新バージョンを削除し、削除されたファイルに新しいバージョンを指定せずに環境を更新すると、更新は失敗し、 などのエラーメッセージが表示されますUnable to read version {version number} of file {file name}

Amazon S3 で DAG を削除する

DAG ファイル (.py) はバージョン管理されていないため、Amazon S3 コンソールで直接削除できます。次のステップでは、Amazon S3 バケット内の DAG を削除する方法について説明します。

DAG を削除するには
  1. Amazon MWAA コンソールで、環境ページを開きます。

  2. 環境を選択します。

  3. S3 ペインの DAG コードで S3 バケットリンクを選択して、コンソールでストレージバケットを開きます。 S3

  4. dags フォルダを選択します。

  5. DAG を選択し、[削除] します。

  6. [オブジェクトを削除] する場合、delete を入力してください。

  7. [オブジェクトの削除] を選択します。

注記

Apache Airflow は DAG の実行履歴を保存します。Apache Airflow で DAG を実行した後は、Apache Airflow で削除するまで、ファイルのステータスに関係なく、Airflow DAG リストに残ります。Apache Airflow で DAG を削除するには、リンク列の赤い「削除」ボタンを選択します。

「現在の」requirements.txt または plugins.zip を環境から削除する

現在、plugins.zip や requirements.txt を追加した後に環境から削除する方法はありませんが、現在対応中です。当面の回避策は、それぞれ空のテキストまたは zip ファイルを指すことです。

「最新でない」(以前の) requirements.txt または plugins.zip バージョンを削除する

Amazon S3 バケット内の requirements.txt および plugins.zip ファイルは、Amazon MWAA でバージョニングされています。Amazon S3 バケットでこれらのファイルを完全に削除する場合は、オブジェクトの最新バージョン (121212) を取得し (plugins.zip など)、バージョンを削除してから、ファイルバージョンの削除マーカーを削除する必要があります。

Amazon S3 コンソールで「最新でない」(以前の) ファイルバージョンを削除することもできますが、それでも以下のオプションのいずれかを使用して削除マーカーを削除する必要があります。

ライフサイクルを使用して「最新ではない」(以前の) バージョンを削除し、マーカーを自動的に削除する

Amazon S3 バケットのライフサイクルポリシーを設定して、Amazon S3 バケット内の「最新でない」(以前の) バージョンの plugins.zip ファイルと requirements.txt ファイルを特定の日数が経過した後に削除するか、期限切れのオブジェクトの削除マーカーを削除できます。

  1. Amazon MWAA コンソールで、環境ページを開きます。

  2. 環境を選択します。

  3. [Amazon S3 内の DAG コード] で、Amazon S3 バケットを選択します。

  4. [ライフサイクルルールを作成] を選択します。

requirements.txt の「最新でない」バージョンを削除してマーカーを自動的に削除するライフサイクルポリシーの例

次の例を使用して、30 日後に requirements.txt ファイルとその削除マーカーの「最新ではない」バージョンを完全に削除するライフサイクルルールを作成します。

  1. Amazon MWAA コンソールで、環境ページを開きます。

  2. 環境を選択します。

  3. [Amazon S3 内の DAG コード] で、Amazon S3 バケットを選択します。

  4. [ライフサイクルルールを作成] を選択します。

  5. [ライフサイクルルール] の名前に Delete previous requirements.txt versions and delete markers after thirty days を入力してください。

  6. [プレフィックス] では、[要件]

  7. [ライフサイクルルールアクション] で、[以前のバージョンのオブジェクトを完全に削除する][期限切れの削除マーカーまたは不完全なマルチパートアップロードを削除] を選択します。

  8. [オブジェクトが前のバージョンになるまでの日数] に、30 を入力してください。

  9. [期限切れオブジェクト削除マーカー][期限切れオブジェクト削除マーカーを削除] を選択します。オブジェクトは 30 日後に完全に削除されます。

次のステップ