翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECR エラーメッセージのトラブルシューティング
Amazon ECR コンソールまたは AWS CLI を通じて開始された API コールがエラーメッセージで終了することがあります。一般的なエラーメッセージと考えられる解決策を以下に説明します。
HTTP 429: リクエストが多すぎる、または ThrottleException
1 つ以上の Amazon ECR アクションまたは API コールから、429: Too Many Requests
エラーまたは ThrottleException
エラーを受け取ることがあります。これは、短い間隔で Amazon ECR の単一のエンドポイントを繰り返し呼び出していて、リクエストがスロットリングされていることを示します。スロットリングは、1 人のユーザーから単一のエンドポイントへの呼び出しが、期間中に特定のしきい値を超えたときに発生します。
Amazon ECR での各 API オペレーションには、レートスロットルが関連付けられています。たとえば、GetAuthorizationToken
アクションのスロットリングは 20 TPS (トランザクション/秒) で、最大 200 TPS のバーストが可能です。各リージョンで、各アカウントには、最大 200 GetAuthorizationToken
クレジットを保存できるバケットが割り当てられ、1 秒あたり 20 クレジットの割合で補充されます。バケットに 200 クレジットがある場合、1 秒あたり 200 GetAuthorizationToken
API トランザクションに達すると、1 秒あたり 20 トランザクションが無期限に維持されます。Amazon ECR API のレート制限の詳細については、「Amazon ECR のサービスクォータ」を参照してください。
スロットリングエラーを処理するには、増分バックオフをコードに含めて再試行関数を実装します。詳細については、「AWS SDK とツールのリファレンスガイド」の「再試行動作」を参照してください。もう 1 つのオプションは、レート制限の引き上げをリクエストすることです。これを行うには、Service Quotas コンソールを使用します。詳細については、「AWS Management Consoleでの Amazon ECR サービスクォータの管理」を参照してください。
HTTP 403: "ユーザー [arn] は [operation] の実行を許可されていません"
Amazon ECR を使用してアクションを実行しようとすると、次のエラーを受け取ることがあります。
$
aws ecr get-login-password
A client error (AccessDeniedException) occurred when calling the GetAuthorizationToken operation: User: arn:aws:iam::account-number
:user/username
is not authorized to perform: ecr:GetAuthorizationToken on resource: *
これは、Amazon ECR を使用するアクセス権限がユーザーに付与されていないか、それらのアクセス権限が正しく設定されていないことを示します。特に、Amazon ECR レポジトリに対してアクションを実行している場合は、そのリポジトリにアクセスする権限がユーザーに付与されていることを確認します。Amazon ECR の許可の作成と検証の詳細については、「Amazon Elastic Container Registry の Identity and Access Management」を参照してください。
HTTP 404: "レポジトリは存在しません" エラー
現在存在しない Docker Hub リポジトリを指定すると、Docker Hub はそのレポジトリを自動的に作成します。Amazon ECR では、レポジトリを使用するには、その前に新しいリポジトリを明示的に作成する必要があります。これにより、(タイプミスなどの原因で) 新しいレポジトリが間違って作成されるのを防止し、適切なセキュリティアクセスポリシーが明示的に新しいレポジトリに割り当てられます。レポジトリの作成方法の詳細については、「Amazon ECR プライベートリポジトリ」を参照してください。
エラー: Cannot perform an interactive login from a non TTY device (TTY 以外のデバイスから対話型ログインを実行できません)
Cannot perform an interactive login from a non TTY
device
エラーが表示される場合は、以下のトラブルシューティング手順を試してください。
-
AWS CLI バージョン 2 を使用し、システム上にバージョン 1 AWS CLI の競合バージョンがないことを確認します。詳細については、「Installing or updating the latest version of the AWS CLI」を参照してください。
-
が有効な認証情報 AWS CLI で設定されていることを確認します。詳細については、「Installing or updating the latest version of the AWS CLI」を参照してください。
-
AWS CLI コマンドの構文が正しいことを確認します。