Comment résoudre les problèmes liés aux tâches de bloc-notes planifiées dans SageMaker Studio ?

Lecture de 4 minute(s)
0

Lorsque j'exécute une tâche de bloc-notes planifiée dans Amazon SageMaker Studio, je reçois un message d'erreur.

Brève description

Deux erreurs courantes peuvent bloquer l'exécution d'une tâche de bloc-notes planifiée dans SageMaker Studio :

  • Les erreurs de type Accès refusé
  • Les erreurs d'interface utilisateur survenant lorsque vous tentez de mettre à jour une tâche

Résolution

Erreurs de type « Accès refusé »

Les erreurs de type Accès refusé sont généralement associées aux éléments suivants :

  • Politiques de gestion des identités et des accès AWS (IAM)
  • Politique relative aux points de terminaison d'un cloud privé virtuel (VPC)
  • Exceptions des balises de ressources

Problèmes liés à la politique IAM

Les erreurs de type « Accès refusé » sont le plus souvent dues à des erreurs liées aux autorisations. Il convient donc de suivre les meilleures pratiques pour le rôle IAM nécessaire pour la tâche de bloc-notes. Vous aurez besoin du rôle IAM suivant pour la relation d'approbation de base :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Vérifiez également que votre rôle IAM dispose des autorisations suivantes :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::*:role/*",
      "Condition": {
        "StringLike": {
          "iam:PassedToService": [
            "sagemaker.amazonaws.com",
            "events.amazonaws.com"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "events:TagResource",
        "events:DeleteRule",
        "events:PutTargets",
        "events:DescribeRule",
        "events:PutRule",
        "events:RemoveTargets",
        "events:DisableRule",
        "events:EnableRule"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:PutBucketVersioning",
        "s3:PutEncryptionConfiguration"
      ],
      "Resource": "arn:aws:s3:::sagemaker-automated-execution-*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListTags"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:user-profile/*",
        "arn:aws:sagemaker:*:*:space/*",
        "arn:aws:sagemaker:*:*:training-job/*",
        "arn:aws:sagemaker:*:*:pipeline/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:training-job/*",
        "arn:aws:sagemaker:*:*:pipeline/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:CreateVpcEndpoint",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeVpcs",
        "ecr:BatchCheckLayerAvailability",
        "ecr:BatchGetImage",
        "ecr:GetDownloadUrlForLayer",
        "ecr:GetAuthorizationToken",
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:GetEncryptionConfiguration",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:GetObject",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace",
        "sagemaker:DescribeStudioLifecycleConfig",
        "sagemaker:DescribeImageVersion",
        "sagemaker:DescribeAppImageConfig",
        "sagemaker:CreateTrainingJob",
        "sagemaker:DescribeTrainingJob",
        "sagemaker:StopTrainingJob",
        "sagemaker:Search",
        "sagemaker:CreatePipeline",
        "sagemaker:DescribePipeline",
        "sagemaker:DeletePipeline",
        "sagemaker:StartPipelineExecution"
      ],
      "Resource": "*"
    }
  ]
}

Pour en savoir plus, reportez-vous à Politiques gérées par AWS pour les blocs-notes SageMaker.

Problèmes liés aux points de terminaison d'un VPC

Si vous lancez la tâche de bloc-notes via le point de terminaison d'un VPC, vérifiez la configuration et la politique de ce point de terminaison. Veillez à suivre les instructions et les meilleures pratiques ci-dessous pour le point de terminaison de service concerné :

Dans le cas des points de terminaison d'un VPC Amazon S3, le problème le plus courant est la restriction d'un point de terminaison à un seul compte. Par exemple, la politique suivante restreint l'accès à un compte correspondant à l'ID 111122223333 :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSpecificAccountsPermission",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "s3:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}

Dans ce cas, vous devez également autoriser l'utilisateur à apporter des actions au compartiment suivant :

{
  "Action": [
    "s3:*"
  ],
  "Resource": [
    "arn:aws:s3:::sagemakerheadlessexecution-prod-*",
    "arn:aws:s3:::sagemakerheadlessexecution-prod-*/*"
  ],
  "Effect": "Allow",
  "Sid": "SCTASK14554266"
}

Exceptions des balises de ressources

Vérifiez que votre politique IAM dispose bien des autorisations suivantes :

{
  "Effect": "Allow",
  "Action": [
    "events:TagResource",
    "events:DeleteRule",
    "events:PutTargets",
    "events:DescribeRule",
    "events:PutRule",
    "events:RemoveTargets",
    "events:DisableRule",
    "events:EnableRule"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
    }
  }
}

Les erreurs d'interface utilisateur survenant lorsque vous tentez de mettre à jour une tâche

Il est possible qu'une erreur d'interface utilisateur survienne lorsque vous essayez de créer, de décrire, de mettre à jour, d'arrêter ou de supprimer une tâche de bloc-notes. Vous pouvez également rencontrer ce problème dans le cadre des définitions de tâches (tâches planifiées). Pour résoudre ce problème, commencez par noter le message d'erreur qui s'affiche dans l'interface utilisateur. Ce message offre souvent des instructions ou suggère des mesures à prendre pour résoudre le problème.

Si vous ne parvenez pas à corriger l'erreur, procédez comme suit :

  1. Effectuez une capture d'écran du message d'erreur, puis enregistrez-la sous forme de fichier image.
  2. Créez un fichier d'archive HTTP (HAR) qui capture le trafic réseau lorsque l'erreur d'interface utilisateur se produit.
  3. Accédez au terminal du serveur Jupyter de SageMaker Studio. Choisissez Fichier, Nouveau, Terminal.
  4. Consultez les journaux dans /var/log/apps/app_container.log pour détecter toute exception, erreur ou avertissement coïncidant avec l'erreur d'interface utilisateur.
  5. Contactez AWS Support via le Centre AWS Support. Joignez la capture d'écran du message d'erreur, le fichier app_container.log et le fichier HAR à votre demande.
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois