Saltar al contenido

¿Cómo soluciono los problemas que se producen con mis trabajos de cuaderno programados de Sagemaker AI?

6 minutos de lectura
0

Quiero solucionar los problemas que se producen con mis trabajos de cuaderno programados de Amazon SageMaker AI.

Resolución

El trabajo de cuaderno no se ejecuta durante el tiempo programado

Los trabajos de cuaderno programados utilizan los servicios de entrenamiento y canalización de Amazon EventBridge y SageMaker AI. Si tu cuaderno no funciona durante el tiempo programado, es posible que tu rol de AWS Identity and Access Management (IAM) no tenga los permisos necesarios.

El rol de IAM que utilizaste para crear y programar el trabajo de cuaderno es el rol de dominio de SageMaker AI Studio o el rol adjunto al perfil de usuario individual del dominio.

Para conceder permisos para gestionar los eventos de Amazon CloudWatch para tus trabajos de cuaderno programados, agrega la siguiente política a los trabajos de cuaderno programados:

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

Nota: La política anterior permite incluir etiquetas en los perfiles de usuario para identificar los cuadernos que están etiquetados como un trabajo programado.

El botón «Crear» aparece atenuado cuando intentas crear un trabajo de cuaderno programado

Si el botón Crear está atenuado y el parámetro Opciones adicionales muestra **!**cuando creas un trabajo de cuaderno, recupera el archivo HAR. Revisa la captura de red durante el tiempo en que se produjo el problema para identificar la causa. Comprueba si hay errores de configuración de Amazon Virtual Private Cloud (Amazon VPC) o problemas de permisos de roles de versión ejecutable.

Si usas Amazon VPC para ejecutar tu trabajo de cuaderno, asegúrate de tener los siguientes puntos de enlace de Amazon VPC:

Especifica al menos una subred privada y un grupo de seguridad. Si no usas subredes privadas, usa otra opción de configuración. Para obtener más información, consulta Requisitos para usar el modo solo de VPC.

Si has configurado los puntos de enlace anteriores o no utilizas una Amazon VPC para ejecutar el trabajo de cuaderno, configura los permisos de IAM y los permisos del rol de versión ejecutable.

Para configurar los permisos de IAM, sigue estos pasos:

  1. Abre la consola de IAM.
  2. En el panel de navegación, selecciona Usuarios.
  3. Selecciona el usuario de IAM que está asociado a tu trabajo de cuaderno.
  4. En el menú desplegable, selecciona Agregar permisos y, a continuación, Crear política insertada.
  5. Selecciona la pestaña JSON y, a continuación, agrega la siguiente 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 los permisos del rol de versión ejecutable, sigue estos pasos:

  1. Abre la consola de IAM.
  2. En el panel de navegación, selecciona Roles.
  3. Selecciona el rol de versión ejecutable del trabajo asociado a tu trabajo de cuaderno.
  4. Elige la pestaña Relaciones de confianza.
  5. Selecciona Editar política de confianza y, a continuación, agrega la siguiente política:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "events.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Para agregar permisos de acceso a los recursos, sigue estos pasos:

  1. Abre la consola de IAM.

  2. En el panel de navegación de la izquierda, selecciona Roles.

  3. Selecciona el rol de versión ejecutable del trabajo asociado a tu trabajo de cuaderno.

  4. En el menú desplegable, selecciona Agregar permisos y, a continuación, Crear política insertada.

  5. Selecciona la pestaña JSON y, a continuación, agrega la siguiente 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": "*"
            }
        ]
    }

    Nota: En la política anterior, puedes agregar permisos a otros recursos a los que debe tener acceso tu trabajo de cuaderno.

  6. Elige Revisar la política. A continuación, introduce un nombre para tu política.

  7. Selecciona Crear política.

Aparece el error «Unable to find metadata for image»

Aparece el mensaje de error «Unable to find metadata for image arn in region: example-region».

El error anterior se produce cuando no asocias ni seleccionas la imagen del usuario al crear el trabajo de cuaderno. Este error también puede producirse al intentar adjuntar la imagen del usuario al trabajo de cuaderno.

Para resolver este problema, vuelve a programar el trabajo de cuaderno más adelante. Si el error persiste, ponte en contacto con AWS Support.

Información relacionada

Poner en funcionamiento los cuadernos de Amazon SageMaker Studio según los trabajos de cuaderno programados

Instalación de políticas y permisos para entornos locales de Jupyter

OFICIAL DE AWSActualizada hace un año