AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

MWAA 環境で Apache Airflow CLI を使用するときに発生するエラーを解決する方法を教えてください。

所要時間2分
0

Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 環境で Apache Airflow コマンドラインインターフェイス (CLI) を使用するときに発生するエラーを解決したいです。

簡単な説明

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Amazon MWAA では、ユーザーは Apache Airflow CLI コマンドを使用して Apache Airflow 環境を操作できます。これらのコマンドは Amazon MWAA 環境のウェブサーバーによって処理され、認証には Apache Airflow CLI トークンを使用します。

注: 1 回限りの操作などの同期アクションには、Apache Airflow CLI のみを使用するのがベストプラクティスです。DAG の呼び出しなどの非同期アクションに Apache Airflow CLI を使用するのはベストプラクティスではありません。すべてのユーザーのためにウェブサーバーの可用性を維持するには、Apache Airflow コマンドの使用について、同時に実行できるコマンドの数を最大 4 つまでに制限します。

Amazon MWAA 環境で Apache Airflow CLI を使用するときに発生する可能性のある一般的なエラーを次に示します。

  • アクセス拒否エラー
  • DAG の検出失敗エラー
  • 4## HTTP レスポンスコードエラー
  • 5## HTTP レスポンスコードエラー

解決策

Apache Airflow CLI の使用時に発生したエラーメッセージを、次に示すエラーの種類に基づいて解決します。

アクセス拒否エラー

次のエラーメッセージまたは同様のエラーメッセージが表示されていないか確認してください。

"AccessDeniedException: An error occurred (AccessDeniedException) when calling the CreateCliToken operation: User: is not authorized to perform: airflow:CreateCliToken on resource."

このエラーを解決するには、設定された AWS Identity and Access Management (IAM) プリンシパルに必要なアクセス許可ポリシーステートメントがあることを確認してください。アクセス許可ポリシーステートメントでは、IAM プリンシパルが airflow:CreateCliToken API を実行できる必要があります。次の IAM ポリシーを IAM プリンシパルにアタッチして、Apache Airflow CLI トークンを作成できるようにします。

注: example-region を必要な AWS リージョンに、example-account-number を必要なアカウント番号に、example-environment-name をお使いの環境名に置き換えます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "airflow:CreateCliToken"
      ],
      "Resource": "arn:aws:airflow:::environment/"
    }
  ]
}

DAG の検出失敗エラー

dags listdags next-execution などの Apache Airflow CLI コマンドでは、DAG ファイルを解析する必要があります。Web サーバーにインストールされていないパッケージによって処理される DAG がある場合、次のエラーまたは同様のエラーが発生します。

"airflow.exceptions.AirflowException: Dag 'sample\_\_dag' could not be found; either it does not exist or it failed to parse."

プライベート専用ウェブサーバーを使用する Amazon MWAA 環境では、ウェブサーバーがインターネットにアクセスして追加のパッケージをインストールすることはできません。追加のパッケージは Python Package Index のパブリックリポジトリにあります。詳細については、Python Package Index のウェブサイトで「Python Package Index」を参照してください。ウェブサーバーが Python Package Index または他の公開ホストされているリポジトリからパッケージをインストールしようとすると、パッケージのインストールは失敗します。この問題を解決するには、要件 (requirement) ファイルに記載されているパッケージを Python wheels (.whl) ファイル からインストールします。

注: ウェブサーバーに追加パッケージをインストールすると、DAG ファイルの解析を必要とする Apache Airflow CLI コマンドが正常に実行されます。

4## HTTP レスポンスエラーコード

400 HTTP レスポンス - コマンド解析エラー

このエラーは、Apache Airflow コマンドの解析エラーを示しています。このエラーは、Apache Airflow CLI コマンドが、パラメータの欠落や無効なオプションなど、誤った構文で送信された場合に発生します。このエラーを解決するには、使用する Apache Airflow CLI コマンドで正しい構文を使用していることを確認してください。詳細については、Apache Airflow ウェブサイトで「コマンドラインインターフェイスおよび環境変数リファレンス」を参照してください。

注: オープンソースの Apache Airflow CLI コマンドでは、airflow [-h] GROUP_OR_COMMAND というコマンド構造を使用します。Amazon MWAA 環境の Apache Airflow CLI コマンドでは、[-h] GROUP_OR_COMMAND というコマンド構造を使用します。

403 アクセス禁止 HTTP レスポンス - 要求されたリソースにアクセスするためのアクセス許可がありません

このエラーは、要求されたリソースにアクセスするためのアクセス許可がなく、そのリソースが読み取り禁止になっているか、サーバーによる読み取りが不可能であることを示しています。このエラーは、期限切れの認証トークンを使用して Apache Airflow CLI コマンドを送信した場合に発生します。認証トークンは 60 秒間有効でハードリミットされており、調整したり増やしたりすることはできません。このエラーを解決するには、新しいトークンを生成し、Apache Airflow CLI コマンドを再度送信します。

注: Amazon MWAA は、認証に CLI トークンとウェブログイントークンの 2 つのトークンを使用します。CLI トークンはユーザーを認証し、ユーザーが Apache Airflow CLI コマンドを送信できるようにします。ウェブログイントークンは、環境の Apache Airflow UI にサインインするユーザーを認証します。Apache Airflow CLI リクエストがウェブログイントークンを使用している場合、そのトークンは有効とならず、ウェブサーバーは 403 アクセス禁止 HTTP レスポンスを返します。この問題を解決するには、スクリプトを更新して Amazon MWAA 環境用の CLI トークンを作成します。

405 HTTP レスポンス - 無効なリクエストが行われました

このエラーは、リクエストが有効ではなかったことを示します。このエラーは、Apache Airflow CLI コマンドをウェブサーバーに送信する際に、POST リクエストを使用しなかった場合に発生します。このエラーを解決するには、POST メソッドを使用して Web サーバーにリクエストを送信するようにスクリプトを更新します。

405 HTTP レスポンス - おっと! 何らかの異常が発生しました

このエラーは、サポートされていない Apache Airflow CLI コマンドが送信されたことを示しています。これを解決するには、使用するコマンドが、お使いの環境内で使用している Apache Airflow バージョンでサポートされていることを確認してください。

5## HTTP レスポンスエラーコード

500 HTTP レスポンス - レスポンスタイムアウト

Apache Airflow CLI コマンドは、Amazon MWAA 環境のウェブサーバーによって処理されます。環境がプライベートアクセス専用に設定されている場合、ウェブサーバーへパブリックにルーティングすることはできません。このエラーを解決するには、Apache Airflow CLI コマンドが送信されるローカルマシンからプライベートウェブサーバーへの到達可能なルートを指定します。詳細については、「Amazon MWAA 環境でプライベートネットワークアクセスモードを使用して Apache Airflow UI にアクセスする方法を教えてください」を参照してください。

**503 HTTP レスポンス **

このエラーは、推奨されている Apache Airflow CLI コマンドの同時実行回数を超えたことを示しています。これにより、Web サーバーのリソース使用率が増加し、Web サーバーが使用できなくなる場合があります。このエラーを解決するには、Apache Airflow CLI コマンドを送信する頻度を減らします。新しいコマンドを送信する前に、前のコマンドが完了していることを確認してください。

AWS公式
AWS公式更新しました 7ヶ月前
コメントはありません

関連するコンテンツ