AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
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 コマンドを送信する頻度を減らします。新しいコマンドを送信する前に、前のコマンドが完了していることを確認してください。
- 言語
- 日本語
