MWAA 環境で Apache Airflow CLI を使用するときに発生するエラーを解決する方法を教えてください。
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 list や dags 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 コマンドを送信する頻度を減らします。新しいコマンドを送信する前に、前のコマンドが完了していることを確認してください。
関連するコンテンツ
- 質問済み 4ヶ月前lg...
- 質問済み 1年前lg...
- 質問済み 2ヶ月前lg...
- 質問済み 1年前lg...
- AWS公式更新しました 2ヶ月前
- AWS公式更新しました 1年前