次の方法で共有


AzCopy v10 の問題のトラブルシューティング

この記事では、AzCopy を使用するときに発生する可能性がある一般的な問題について説明します。 また、この記事は、問題の原因を特定し、それらを解決する方法を提案するのにも役立ちます。

問題の特定

終了コードを調べることで、ジョブが成功したかどうかを判断できます。

終了コードが 0-success場合、ジョブは正常に完了しました。

終了コードが 1-error場合は、ログ ファイルを調べます。 正確なエラー メッセージを理解したら、適切なキーワードを簡単に検索し、解決策を特定できます。 詳細については、「AzCopy でログとプラン ファイルを使用してエラーの検出とジョブの再開を行う」を参照してください。

終了コードが 2-panic場合は、ログ ファイルが存在するかどうかを確認します。 ファイルが存在しない場合は、バグを提出するか、サポートにお問い合わせください。

その他の 0 以外の終了コード ( OOMKilledなど) は、システムによって生成される可能性があります。 オペレーティング システムのドキュメントで、特別な終了コードを確認してください。

"403" エラー

"403" エラーが一般的です。 無害で、転送に失敗しない場合があります。 たとえば、AzCopy ログでは、 HEAD 要求が "403" エラーを受信したことがわかります。 これらのエラーが発生するのは、リソースがパブリックであるかどうかを AzCopy が確認するときです。 ほとんどの場合、これらのインスタンスを無視できます。

場合によっては、"403" エラーによって転送に失敗することがあります。 この問題が発生した場合、問題を解決するまで、他のファイル転送の試行が失敗する可能性があります。 "403" エラーは、認証と承認の問題によって発生する可能性があります。 また、ストレージ アカウントのファイアウォール構成によって要求がブロックされている場合にも発生する可能性があります。

認証と承認の問題

SAS トークン、ロールベースのアクセス制御 (Azure RBAC) ロール、アクセス制御リスト (ACL) の構成に関連する問題が原因で、データ転送を妨げる "403" エラーが発生します。

SAS トークン

Shared Access Signature (SAS) トークンを使用する場合は、次のステートメントが当てはまることを確認してください。

  • SAS トークンの有効期限と開始時刻が適切です。

  • 必要なすべてのアクセス許可をトークンに対して選択しました。

  • 公式の SDK またはツールを使用してトークンを生成しました。 まだ試してない場合は、Storage Explorer を使用してみてください。

Azure RBAC

azcopy login コマンドで Azure RBAC ロールを使用する場合は、ID に適切な Azure ロールが割り当てられていることを確認します (ストレージ BLOB データ共同作成者ロールなど)。

Azure ロールの詳細については、「BLOB データにアクセスするための Azure ロールを割り当てる」を参照してください。

ACL

アクセス制御リスト (ACL) を使用する場合は、アクセスする各ファイルまたはディレクトリの ACL エントリに ID が表示されることを確認します。 また、各 ACL エントリが適切なアクセス許可レベルを反映していることを確認します。

ACL および ACL エントリの詳細については、Azure Data Lake Storage Gen2 のアクセス制御リスト (ACL) の管理に関するページを参照してください。

Azure ロールを ACL に一緒に組み込む方法と、それらをシステムで評価して認可の決定を行う方法の詳細については、「Azure Data Lake Storage Gen2 でのアクセス制御モデル」を参照してください。

ファイアウォールとプライベート エンドポイントの問題

ストレージ ファイアウォール構成で、AzCopy が実行されているホスティング コンポーネントからのアクセスが許可されていない場合、AzCopy 操作は HTTP "403" エラー コードを返します。

Note

この記事では、 ホスト コンポーネント という用語は、物理コンピューター、仮想マシン (VM)、またはコンテナーを指します。

コピー操作の許可されるスコープ

ストレージ アカウントの AllowedCopyScope プロパティは、コピー先アカウントにデータをコピーできる環境を指定するために使用されます。 このプロパティは、コピー操作 (プレビュー) 構成設定の Permitted スコープとして Azure portal に表示されます。 既定では、プロパティには値が与えられません。 プロパティは、明示的に設定するまで値を返しません。 AllowedCopyScope プロパティには、次の表に示すように、3 つの値を指定できます。

説明
(null) (既定値)任意のストレージ アカウントからコピー先アカウントへのコピーを許可します。
Microsoft Entra ID 移行先アカウントと同じ Microsoft Entra テナント内にあるアカウントからのみコピーを許可します。
PrivateLink 宛先アカウントと同じ仮想ネットワークへのプライベート リンクを持つストレージ アカウントからのみコピーを許可します。

このプロパティとそれに関連付けられている構成設定の詳細については、「 ストレージ アカウントへのコピー操作のソースの制限」を参照してください

ローカル ホスティング コンポーネントとの間でデータを転送する

ストレージ アカウントとオンプレミスのホスティング コンポーネントの間でデータをアップロードまたはダウンロードする場合は、AzCopy を実行するホスティング コンポーネントが、ソースまたはコピー先のストレージ アカウントにアクセスできることを確認します。 ホスト コンポーネントのパブリック IP アドレスからのアクセスを許可するには、送信元アカウントまたは宛先アカウントのファイアウォール設定で IP ネットワーク規則を使用する必要がある場合があります。

ストレージ アカウント間でデータを転送する

"403" 承認エラーにより、AzCopy が実行されているクライアント ホスティング コンポーネントを使用してアカウント間でデータを転送できなくなる可能性があります。

ストレージ アカウント間でデータをコピーする場合は、AzCopy を実行するホスティング コンポーネントがソース アカウントと移行先アカウントの両方にアクセスできることを確認します。 ホスト コンポーネントのパブリック IP アドレスからのアクセスを許可するには、送信元アカウントと移行先アカウントの両方のファイアウォール設定で IP ネットワーク規則を使用する必要がある場合があります。 サービスは、AzCopy クライアント ホスティング コンポーネントの IP アドレスを使用して、送信元から宛先へのトラフィックを承認します。 ストレージ アカウントのファイアウォール設定にパブリック IP アドレスを追加する方法については、「インターネット IP 範囲からのアクセスを許可する」を参照してください。

VM にパブリック IP アドレスがないか、パブリック IP アドレスを設定できない場合は、プライベート エンドポイントの使用を検討してください。 「Azure Storage のプライベート エンドポイントを使用する」を参照してください。

Private Link は仮想ネットワーク/サブネット レベルです。 AzCopy 要求が Private Link を経由するようにする場合、AzCopy は、その仮想ネットワーク/サブネットで実行されている VM からそれらの要求を行う必要があります。 たとえば、VNet1/Subnet1 で Private Link を構成し、AzCopy が実行されている VM が VNet1/Subnet2 内にあるとします。 このシナリオでは、AzCopy 要求は Private Link を使用せず、要求は失敗することが予想されます。

"dial tcp: lookup proxy.x.x: no such host" などの TCP エラーが発生した場合は、環境が正しいプロキシを使用するように構成されていないか、AzCopy で認識されない高度なプロキシを使用していることを意味します。

正しい構成を反映するようにプロキシ設定を更新する必要があります。 「プロキシ設定の構成」を参照してください。

環境変数を NO_PROXY="*"設定することで、プロキシをバイパスすることもできます。

AzCopy に必要なエンドポイントを次に示します。

サインインのエンドポイント Azure Storage エンドポイント
login.microsoftonline.com (グローバル Azure) (blob | file | dfs).core.windows.net (グローバル Azure)
login.chinacloudapi.cn (Azure China) (blob | file | dfs).core.chinacloudapi.cn (Azure China)
login.microsoftonline.de (Azure Germany) (blob | file | dfs).core.cloudapi.de (Azure Germany)
login.microsoftonline.us (Azure US Government) (blob | file | dfs).core.usgovcloudapi.net (Azure US Government)

x509: 不明な機関によって署名された証明書

このエラーは、多くの場合、オペレーティング システムによって信頼されていない Secure Sockets Layer (SSL) 証明書を使用しているプロキシの使用に関連しています。 設定を確認して、証明書がオペレーティング システム レベルで信頼されるようにします。

信頼された証明機関が保持されるため、ホスティング コンポーネントのルート証明書ストアに証明書を追加することをお勧めします。

認識されないパラメーター

パラメーターが認識されていないことを示すエラー メッセージが表示される場合は、AzCopy の正しいバージョンを使用していることを確認してください。 AzCopy v8 以前のバージョンは非推奨です。 AzCopy v10 は現在のバージョンであり、以前のバージョンと構文を共有しない完全な書き換えです。 v8 から v10 へのAzCopy 移行ガイド 参照

また、 -h スイッチを任意のコマンド ( azcopy copy -h など) と共に使用して、組み込みのヘルプ メッセージを使用してください。 「コマンドのヘルプを表示する」を参照してください。 オンラインで同じ情報を表示するには、「azcopy copy」を参照してください。

コマンドの理解に役立つよう、 AzCopy コマンド ガイドにある教育ツールが用意されています。 このツールでは、最も一般的な AzCopy コマンドと最も一般的なコマンド フラグが説明されます。 コマンドの例については、「 データの転送」を参照してください。 質問がある場合は、まず既存の GitHub の問題を検索して 既に回答されているかどうかを確認してください。

条件付きアクセス ポリシー エラー

azcopy login コマンドを呼び出すと、次のエラーが表示されることがあります。

ログイン コマンドの実行に失敗しました:tenantID "common"、Azure ディレクトリ エンドポイント "https://login.microsoftonline.com"、autorest/adal/devicetoken: -REDACTED- AADSTS50005: ユーザーが条件付きアクセス ポリシーで現在サポートされていないプラットフォーム (不明) からデバイスにログインしようとしました。 Supported device platforms are: iOS, Android, Mac, and Windows flavors. (サポートされているデバイス プラットフォームは、iOS、Android、Mac、Windows フレーバーです。) トレース ID: -REDACTED- 関連付け ID: -REDACTED- Timestamp: 2021-01-05 01:58:28Z

このエラーは、サインインできるデバイスの種類を指定する条件付きアクセス ポリシーを管理者が構成したことを意味します。 AzCopy はデバイス コード フローを使用します。 デバイス コード フローでは、AzCopy ツールを使用しているホスティング コンポーネントもサインイン元であることを保証できません。

デバイスがサポートされているプラットフォームの一覧に含まれている場合は、Storage Explorer を使用できる可能性があります。 Storage Explorer では、すべてのデータ転送に対して AzCopy が統合されますが (シークレット ストアを介して AzCopy にトークンを渡します)、デバイス情報の受け渡しをサポートするサインイン ワークフローが提供されます。 AzCopy 自体は、サインインの代替手段としてマネージド ID とサービス プリンシパルもサポートしています。

デバイスがサポートされているプラットフォームの一覧にない場合は、管理者に問い合わせてください。

サーバーがビジー状態、ネットワーク エラー、またはタイムアウト

"503 サーバービジー" 状態の失敗した要求が多数表示された場合、ストレージ サービスによって要求が調整されます。 ネットワーク エラーやタイムアウトが発生した場合は、インフラストラクチャが処理するためにプッシュするデータが多すぎる可能性があります。 いずれの場合も、回避策は似ています。

特定のチャンクが毎回失敗するため、大きなファイルのコピーが繰り返し失敗する場合は、特定のケースに応じて、同時ネットワーク接続またはスループットの制限を制限してみてください。 最初はパフォーマンスを大幅に低下させ、このアクションによって最初の問題が解決されたかどうかを確認し、全体的なバランスが得られるまでパフォーマンスを再び上げることをお勧めします。

詳細については、「Azure Storage で AzCopy のパフォーマンスを最適化する」を参照してください。

AzCopy を使用してアカウント間でデータをコピーする場合、AzCopy を実行するネットワークの品質と信頼性が全体的なパフォーマンスに影響する可能性があります。 データがサーバーからサーバーに転送される場合でも、サービス エンドポイント間でコピーする各ファイルの呼び出しは AzCopy が開始します。

AzCopy の既知の制約

  • 政府機関向けクラウドから商用クラウドへのデータのコピーはサポートされていません。 ただし、商用クラウドから政府機関向けクラウドへのデータのコピーはサポートされています。

  • 非同期のサービス側コピーはサポートされていません。 AzCopy は同期コピーのみを実行します。 つまり、ジョブが完了する時点でデータは移動されています。

  • Azure ファイル共有にコピーするときに、 --preserve-smb-permissions フラグの指定を忘れた場合にデータを再度転送しない場合は、Robocopy を使用してアクセス許可を引き継ぐことを検討してください。

  • Azure Functions には、MSI 認証用に異なるエンドポイントがあります。 AzCopy では、MSI 認証はまだサポートされていません。

関連項目

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。