Como posso solucionar problemas de trabalhos de cadernos programados no SageMaker Studio?

4 minuto de leitura
0

Quando executo um trabalho de caderno programado no Amazon SageMaker Studio, recebo um erro.

Breve descrição

Há dois erros comuns que podem impedir um trabalho de caderno programado no SageMaker Studio:

  • Erros de acesso negado
  • Erros de interface do usuário ao tentar atualizar um trabalho

Resolução

Erros de acesso negado

Os erros de acesso negado geralmente envolvem os seguintes problemas:

  • Políticas do AWS Identity and Access Management (IAM)
  • Políticas de endpoint de nuvem privada virtual (VPC)
  • Exceções de tags de recursos

Problemas de política do IAM

Os erros de acesso negado geralmente ocorrem devido a erros baseados em permissões. Portanto, siga as melhores práticas para o perfil do IAM de que você precisa para o trabalho de caderno. Você precisa do seguinte perfil do IAM para a relação de confiança básica:

{
  "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"
    }
  ]
}

Além disso, verifique se seu perfil do IAM tem as seguintes permissões:

{
  "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": "*"
    }
  ]
}

Para obter mais informações, consulte Políticas gerenciadas pela AWS para cadernos do SageMaker.

Problemas de endpoint da VPC

Se você iniciar o trabalho de caderno por meio de um endpoint da VPC, verifique a configuração e a política do endpoint. Certifique-se de seguir as etapas e as práticas recomendadas para o endpoint de serviço relevante:

Para endpoints da VPC do Amazon S3, o erro mais comum está relacionado a um endpoint restrito a uma única conta. Por exemplo, a política a seguir restringe o acesso a uma conta com ID 111122223333:

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

Nesse caso, você também deve permitir o seguinte acesso ao bucket para as ações do usuário:

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

Exceções de tags de recursos

Certifique-se de que sua política do IAM tenha as seguintes permissões:

{
  "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"
    }
  }
}

Erros de interface do usuário ao tentar atualizar um trabalho

Você pode encontrar um erro de interface do usuário ao tentar criar, descrever, atualizar, interromper ou excluir um trabalho de caderno. Você também pode encontrar esse problema com as definições de trabalhos (trabalhos programados). Para solucionar isso, primeiro observe a mensagem de erro que aparece na interface do usuário. Essa mensagem geralmente contém instruções ou sugestões de ações para resolver o problema.

Se você não conseguir resolver o erro, realize as seguintes etapas:

  1. Faça uma captura de tela do erro e salve-a como um arquivo de imagem.
  2. Crie um arquivo HTTP Archive (HAR) que capture o tráfego da rede quando ocorrer um erro na interface do usuário.
  3. Acesse o terminal do servidor Jupyter do SageMaker Studio. Escolha Arquivo, Novo, Terminal.
  4. Verifique os logs em /var/log/apps/app_container.log para ver se há exceções, erros ou avisos no momento do erro da interface do usuário.
  5. Entre em contato com o AWS Support por meio do AWS Support Center. Em sua solicitação, anexe a captura de tela do erro, o app_container.log e o arquivo HAR.
AWS OFICIAL
AWS OFICIALAtualizada há 6 meses