Ir para o conteúdo

Como soluciono problemas que ocorrem com minhas tarefas agendadas de notebook com o Amazon SageMaker AI?

6 minuto de leitura
0

Quero solucionar problemas que ocorrem com minhas tarefas programadas de notebook com o Amazon SageMaker AI.

Resolução

Seu trabalho no notebook não é executado durante o horário agendado

Os trabalhos agendados em notebooks usam os serviços de treinamento e pipeline de inteligência artificial do Amazon EventBridge e do SageMaker AI. Se seu notebook não for executado durante o horário programado, seu perfil do AWS Identity and Access Management (AWS IAM) pode não ter as permissões necessárias.

O perfil do IAM que você usou para criar e programar a tarefa do notebook é o perfil de domínio do SageMaker AI Studio ou o perfil vinculado ao perfil de usuário individual no domínio.

Para conceder permissões para gerenciar eventos do Amazon CloudWatch para seus trabalhos agendados de notebook, adicione a seguinte política aos seus trabalhos agendados de notebook:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "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"
              }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "events.amazonaws.com"
                }
            }
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "sagemaker:ListTags",
            "Resource": "arn:aws:sagemaker:*:*:user-profile/*/*"
        }
    ]
}

Observação: a política anterior permite listar tags em perfis de usuário para identificar notebooks marcados como um trabalho agendado.

O botão “Criar” fica acinzentado quando você tenta criar um trabalho agendado no notebook

Se o botão Criar estiver acinzentado e o parâmetro Opções adicionais for exibido ! ao criar um trabalho de notebook e, em seguida, recuperar o arquivo HAR. Revise a captura de rede durante o período em que o problema ocorreu para identificar a causa. Verifique se há erros de configuração ou problemas de runtime do perfil de execução do Amazon Virtual Private Cloud (Amazon VPC).

Se você usa o Amazon VPC para executar seu trabalho de notebook, certifique-se de ter os seguintes endpoints do Amazon VPC:

Especifique pelo menos uma sub-rede privada e um grupo de segurança. Se você não usa sub-redes privadas, use outra opção de configuração. Para obter mais informações, consulte Requisitos para usar o modo somente VPC.

Se você configurou os endpoints anteriores ou não usa um Amazon VPC para executar a tarefa do notebook, configure as permissões do IAM e as permissões do perfil runtime de execução.

Para configurar as permissões do IAM, conclua as seguintes etapas:

  1. Abra o console do IAM.
  2. No painel de navegação, escolha Usuários.
  3. Selecione o usuário do IAM associado ao trabalho do seu notebook.
  4. No menu suspenso, escolha Adicionar permissões e, em seguida, escolha Criar política embutida.
  5. Escolha a guia JSON e adicione a seguinte política:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "EventBridgeSchedule",
                "Effect": "Allow",
                "Action": [
                    "events:TagResource",
                    "events:DeleteRule",
                    "events:PutTargets",
                    "events:DescribeRule",
                    "events:EnableRule",
                    "events:PutRule",
                    "events:RemoveTargets",
                    "events:DisableRule"
                ],
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                    }
                }
            },
            {
                "Sid": "IAMPassrole",
                "Effect": "Allow",
                "Action": "iam:PassRole",
                "Resource": "arn:aws:iam::*:role/*",
                "Condition": {
                    "StringLike": {
                        "iam:PassedToService": [
                            "sagemaker.amazonaws.com",
                            "events.amazonaws.com"
                        ]
                    }
                }
            },
            {
                "Sid": "IAMListRoles",
                "Effect": "Allow",
                "Action": "iam:ListRoles",
                "Resource": "*"
            },
            {
                "Sid": "S3ArtifactsAccess",
                "Effect": "Allow",
                "Action": [
                    "s3:PutEncryptionConfiguration",
                    "s3:CreateBucket",
                    "s3:PutBucketVersioning",
                    "s3:ListBucket",
                    "s3:PutObject",
                    "s3:GetObject",
                    "s3:GetEncryptionConfiguration",
                    "s3:DeleteObject",
                    "s3:GetBucketLocation"
                ],
                "Resource": [
                    "arn:aws:s3:::sagemaker-automated-execution-*"
                ]
            },
            {
                "Sid": "S3DriverAccess",
                "Effect": "Allow",
                "Action": [
                    "s3:ListBucket",
                    "s3:GetObject",
                    "s3:GetBucketLocation"
                ],
                "Resource": [
                    "arn:aws:s3:::sagemakerheadlessexecution-*"
                ]
            },
            {
                "Sid": "SagemakerJobs",
                "Effect": "Allow",
                "Action": [
                    "sagemaker:DescribeTrainingJob",
                    "sagemaker:StopTrainingJob",
                    "sagemaker:DescribePipeline",
                    "sagemaker:CreateTrainingJob",
                    "sagemaker:DeletePipeline",
                    "sagemaker:CreatePipeline"
                ],
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                    }
                }
            },
            {
                "Sid": "AllowSearch",
                "Effect": "Allow",
                "Action": "sagemaker:Search",
                "Resource": "*"
            },
            {
                "Sid": "SagemakerTags",
                "Effect": "Allow",
                "Action": [
                    "sagemaker:ListTags",
                    "sagemaker:AddTags"
                ],
                "Resource": [
                    "arn:aws:sagemaker:*:*:pipeline/*",
                    "arn:aws:sagemaker:*:*:space/*",
                    "arn:aws:sagemaker:*:*:training-job/*",
                    "arn:aws:sagemaker:*:*:user-profile/*"
                ]
            },
            {
                "Sid": "ECRImage",
                "Effect": "Allow",
                "Action": [
                    "ecr:GetAuthorizationToken",
                    "ecr:BatchGetImage"
                ],
                "Resource": "*"
            }
        ]
    }

Para configurar as permissões do perfil runtime, conclua as seguintes etapas:

  1. Abra o console do IAM.
  2. No painel de navegação, escolha Perfis.
  3. Selecione o perfil runtime do trabalho associado ao trabalho do seu notebook.
  4. Escolha a guia Relações de confiança.
  5. Escolha Editar política de confiança e, em seguida, adicione a seguinte política:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "events.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Para adicionar permissões para acessar recursos, conclua as seguintes etapas:

  1. Abra o console do IAM.

  2. No painel de navegação esquerdo, escolha Perfis.

  3. Selecione o perfil runtime do trabalho associado ao trabalho do seu notebook.

  4. No menu suspenso, escolha Adicionar permissões e, em seguida, escolha Criar política embutida.

  5. Escolha a guia JSON e adicione a seguinte política:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PassroleForJobCreation",
                "Effect": "Allow",
                "Action": "iam:PassRole",
                "Resource": "arn:aws:iam::*:role/*",
                "Condition": {
                    "StringLike": {
                        "iam:PassedToService": "sagemaker.amazonaws.com"
                    }
                }
            },
            {
                "Sid": "S3ForStoringArtifacts",
                "Effect": "Allow",
                "Action": [
                    "s3:PutObject",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:GetBucketLocation"
                ],
                "Resource": "arn:aws:s3:::sagemaker-automated-execution-*"
            },
            {
                "Sid": "S3DriverAccess",
                "Effect": "Allow",
                "Action": [
                    "s3:ListBucket",
                    "s3:GetObject",
                    "s3:GetBucketLocation"
                ],
                "Resource": [
                    "arn:aws:s3:::sagemakerheadlessexecution-*"
                ]
            },
            {
                "Sid": "SagemakerJobs",
                "Effect": "Allow",
                "Action": [
                    "sagemaker:StartPipelineExecution",
                    "sagemaker:CreateTrainingJob"
                ],
                "Resource": "*"
            },
            {
                "Sid": "ECRImage",
                "Effect": "Allow",
                "Action": [
                    "ecr:GetDownloadUrlForLayer",
                    "ecr:BatchGetImage",
                    "ecr:GetAuthorizationToken",
                    "ecr:BatchCheckLayerAvailability"
                ],
                "Resource": "*"
            }
        ]
    }

    Observação: na política anterior, é possível adicionar permissões a outros recursos aos quais seu trabalho no notebook deve ter acesso.

  6. Escolha Revisar política. Em seguida, insira um nome para a política.

  7. Selecione Criar política.

Você recebe o erro “Unable to find metadata for image”

Você recebe a mensagem de erro “Unable to find metadata for image arn in region: example-region”.

O erro anterior ocorre quando você não associa ou seleciona a imagem do usuário ao criar a tarefa do notebook. Esse erro também pode ocorrer quando você tenta anexar a imagem do usuário à tarefa do notebook.

Para resolver esse problema, reagende seu trabalho no notebook mais tarde. Se o erro persistir, entre em contato com o AWS Support.

Informações relacionadas

Operacionalize seus cadernos do Amazon SageMaker Studio como trabalhos de notebook agendados

Instale políticas e permissões para ambientes locais do Jupyter

AWS OFICIALAtualizada há um ano