Salta al contenuto

Come posso risolvere i problemi che si verificano con i miei job notebook pianificati Sagemaker AI?

6 minuti di lettura
0

Desidero risolvere i problemi che si verificano con i miei job notebook pianificati Amazon SageMaker AI.

Risoluzione

Il job notebook non viene eseguito durante l'orario pianificato

I job notebook pianificati utilizzano i servizi di addestramento e pipeline di Amazon EventBridge e SageMaker AI. Se il notebook non è in esecuzione nell'orario pianificato, il ruolo AWS Identity and Access Management (AWS IAM) potrebbe non avere le autorizzazioni richieste.

Il ruolo IAM utilizzato per creare e pianificare il job notebook è il ruolo del dominio SageMaker AI Studio o il ruolo associato al profilo utente individuale nel dominio.

Per concedere le autorizzazioni per gestire gli eventi Amazon CloudWatch per i job notebook pianificati, aggiungi ai job la seguente policy:

{
    "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 policy precedente consente ai tag di elenco sui profili utente di identificare i notebook contrassegnati come job pianificato.

Il pulsante "Crea" è disattivato quando tenti di creare un job notebook pianificato

Se il pulsante Crea è disattivato e il parametro Opzioni aggiuntive mostra **!**quando crei un job notebook, recupera il file HAR. Esamina l'acquisizione della rete durante il periodo in cui si è verificato il problema per identificarne la causa. Verifica la presenza di configurazioni non corrette di Amazon Virtual Private Cloud (Amazon VPC) o problemi di autorizzazione dei ruoli di runtime.

Se utilizzi Amazon VPC per eseguire il job notebook, assicurati di disporre dei seguenti endpoint Amazon VPC:

Specifica almeno una sottorete e un gruppo di sicurezza privati. Se non utilizzi sottoreti private, utilizza un'altra opzione di configurazione. Per ulteriori informazioni, consulta Requisiti per l'utilizzo della modalità VPC only.

Se hai configurato gli endpoint precedenti o non utilizzi Amazon VPC per eseguire il job notebook, configura le autorizzazioni IAM e le autorizzazioni dei ruoli di runtime.

Per configurare le autorizzazioni IAM, completa i seguenti passaggi:

  1. Apri la console IAM.
  2. Nel pannello di navigazione, scegliUtenti.
  3. Seleziona l'utente IAM associato al job notebook.
  4. Nel menu a discesa, scegli Aggiungi autorizzazioni, quindi scegli Crea policy inline.
  5. Scegli la scheda JSON, quindi aggiungi la seguente policy:
    {
        "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": "*"
            }
        ]
    }

Per configurare le autorizzazioni del ruolo di runtime, completa i seguenti passaggi:

  1. Apri la console IAM.
  2. Nel pannello di navigazione, scegli Ruoli.
  3. Seleziona il ruolo di runtime del job associato al job notebook.
  4. Scegli la scheda Relazioni di attendibilità.
  5. Scegli Modifica policy di attendibilità, quindi aggiungi la seguente policy:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "events.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Per aggiungere le autorizzazioni per accedere alle risorse, completa i seguenti passaggi:

  1. Apri la console IAM.

  2. Nel pannello di navigazione a sinistra, scegli Ruoli.

  3. Seleziona il ruolo di runtime del job associato al job notebook.

  4. Nel menu a discesa, scegli Aggiungi autorizzazioni, quindi scegli Crea policy inline.

  5. Scegli la scheda JSON, quindi aggiungi la seguente policy:

    {
        "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: nella policy precedente, puoi aggiungere autorizzazioni ad altre risorse a cui il job notebook deve avere accesso.

  6. Scegli Verifica policy. Quindi inserisci un nome per la policy.

  7. Scegli Crea policy.

Ricevi l'errore "Unable to find metadata for image"

Ricevi il messaggio di errore "Unable to find metadata for image arn in region: example-region".

L'errore precedente si verifica quando non associ o selezioni l'immagine dell'utente durante la creazione del job notebook. L'errore può verificarsi anche quando tenti di allegare l'immagine dell'utente al job notebook.

Per risolvere il problema, riprogramma successivamente il job notebook. Se l'errore persiste, contatta il Supporto AWS.

Informazioni correlate

Operationalize your Amazon SageMaker Studio notebooks as scheduled notebook jobs (Come rendere operativi i notebook Amazon SageMaker Studio come job notebook pianificati)

Installazione di policy e autorizzazioni per gli ambienti Jupyter locali

AWS UFFICIALEAggiornata 6 mesi fa