ACR 転送のトラブルシューティング

テンプレート デプロイの失敗またはエラー

Key Vault へのアクセスに関する問題

  • Azure Key Vault にアクセスするときに pipelineRun デプロイが 403 Forbidden エラーで失敗する場合は、パイプライン マネージド ID に適切なアクセス許可があることを確認します。
  • pipelineRun は、exportPipeline または importPipeline のマネージド ID を使用して、Key Vault から SAS トークン シークレットをフェッチします。 ExportPipelines と importPipelines は、システム割り当てまたはユーザー割り当てのマネージド ID でプロビジョニングされます。 このマネージド ID は、SAS トークン シークレットを読み取るために、Key Vault に対する secret get アクセス許可を持っている必要があります。 マネージド ID のアクセス ポリシーが Key Vault に追加されていることを確認してください。 詳細については、「ExportPipeline ID に keyvault ポリシー アクセスを付与する」および「ImportPipeline ID に keyvault ポリシー アクセスを付与する」を参照してください。

ストレージへのアクセスで問題が発生した

  • ストレージから 403 Forbidden エラーが発生した場合は、SAS トークンに問題がある可能性があります。
  • SAS トークンが現在有効でない可能性があります。 SAS トークンの有効期限が切れているか、SAS トークンの作成後にストレージ アカウント キーが変更された可能性があります。 SAS トークンを使用してストレージ アカウント コンテナーへのアクセスの認証を試みることによって、SAS トークンが有効であることを確認します。 たとえば、新しい Microsoft Edge InPrivate ウィンドウのアドレス バーに既存の BLOB エンドポイント、SAS トークンの順に入力するか、az storage blob upload を使用して SAS トークンによってコンテナーに BLOB をアップロードします。
  • SAS トークンの許可されるリソースの種類が十分でない可能性があります。 SAS トークンに、許可されるリソースの種類 (SAS トークン内の srt=sco) のもとでサービス、コンテナー、オブジェクトへのアクセス許可が付与されていることを確認します。
  • SAS トークンに十分なアクセス許可がない可能性があります。 エクスポート パイプラインの場合、必要な SAS トークンのアクセス許可は、読み取り、書き込み、一覧表示、追加です。 インポート パイプラインの場合、必要な SAS トークンのアクセス許可は読み取り、削除、一覧表示です。 (削除のアクセス許可が必要なのは、インポート パイプラインで DeleteSourceBlobOnSuccess オプションが有効になっている場合のみです。)
  • SAS トークンが HTTPS のみで動作するように構成されていない可能性があります。 SAS トークンが HTTPS のみで動作するように構成されている (SAS トークン内の spr=https) ことを確認します。

ストレージ BLOB のエクスポートまたはインポートに関する問題

  • SAS トークンが無効であるか、指定されたエクスポートまたはインポートの実行に対して十分なアクセス許可がない可能性があります。 「ストレージへのアクセスで問題が発生した」を参照してください。
  • ソース ストレージ アカウントの既存のストレージ BLOB が、複数のエクスポート実行中に上書きされない可能性があります。 エクスポート実行で OverwriteBlob オプションが設定されており、SAS トークンに十分なアクセス許可があることを確認します。
  • インポート実行が成功した後、ターゲット ストレージ アカウントのストレージ BLOB が削除されない可能性があります。 インポート実行で DeleteBlobOnSuccess オプションが設定されており、SAS トークンに十分なアクセス許可があることを確認します。
  • ストレージ BLOB が作成または削除されません。 エクスポート実行またはインポート実行で指定されたコンテナーが存在するか、または指定されたストレージ BLOB が手動でのインポート実行用に存在することを確認します。

ソース トリガーのインポートに関する問題

  • SAS トークンでソース トリガーのインポートが機能するには、一覧表示のアクセス許可が必要です。
  • ソース トリガーのインポートは、ストレージ BLOB の最終更新日が 60 日以内である場合のみ発生します。
  • ストレージ BLOB がソース トリガー機能でインポートされるには、その ContentMD5 プロパティが有効である必要があります。
  • ストレージ BLOB がソース トリガー機能でインポートされるには、"category":"acr-transfer-blob" BLOB メタデータが必要です。 このメタデータは、エクスポートのパイプライン実行時に自動的に追加されますが、コピーの方法によっては、ストレージ アカウント間の移動時に削除される場合があります。

AzCopy の問題

成果物の転送に関する問題

  • 一部の成果物が転送されないか、または 1 つも転送されません。 エクスポート実行で成果物のスペルを確認し、エクスポート実行とインポート実行で BLOB の名前を確認します。 最大 50 個の成果物を転送していることを確認します。
  • パイプライン実行が完了していない可能性があります。 エクスポート実行またはインポート実行には時間がかかることがあります。
  • パイプラインに関するその他の問題については、Azure Container Registry チームにエクスポート実行またはインポート実行のデプロイ関連付け ID を提示してください。
  • exportPipelines importPipelines、および pipelineRuns などの ACR Transfer リソースを作成するには、ユーザーが ACR サブスクリプションに対して少なくとも共同作成者アクセス権を持っている必要があります。 それ以外の場合は、転送が拒否されたか、スコープが無効なエラーを実行する承認が表示されます。

物理的に分離された環境でイメージをプルするときの問題

  • 物理的に分離された環境でイメージをプルしようとしたときに、外部レイヤーまたは mcr.microsoft.com の解決試行に関するエラーが表示された場合、非再頒布可能レイヤーがイメージ マニフェストに含まれている可能性があります。 物理的に分離された環境の性質上、これらのイメージのプルに失敗することはよくあります。 イメージ マニフェストに外部レジストリへの参照がないかどうかをチェックすることによって、これに該当するかどうかを確認できます。 該当する場合、そのイメージに対するエクスポート パイプライン実行をデプロイする前に、非再頒布可能レイヤーをパブリック クラウド ACR にプッシュする必要があります。 これを行う方法については、「非再頒布可能レイヤーをレジストリにプッシュするにはどうすればよいですか?」を参照してください。