View a markdown version of this page

Environnement de calcul NON VALIDE - AWS Batch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Environnement de calcul NON VALIDE

Il est possible que vous ayez mal configuré un environnement informatique géré. Si c'est le cas, l'environnement informatique entre dans un INVALID état et ne peut pas accepter de postes à pourvoir. Les sections suivantes décrivent les causes possibles et la procédure de résolution des problèmes en fonction de la cause.

Important

AWS Batch crée et gère plusieurs AWS ressources en votre nom et au sein de votre compte, notamment des modèles de lancement Amazon EC2, des groupes Amazon EC2 Auto Scaling, des flottes Amazon EC2 Spot et des clusters Amazon ECS. Ces ressources gérées sont configurées spécifiquement pour garantir un AWS Batch fonctionnement optimal. La modification manuelle de ces Batch-managed ressources, sauf indication explicite dans AWS Batch la documentation, peut entraîner un comportement inattendu entraînant un environnement de INVALID calcul, un comportement de mise à l'échelle des instances sous-optimal, un retard du traitement de la charge de travail ou des coûts imprévus. Ces modifications manuelles ne peuvent pas être prises en charge de manière déterministe par le AWS Batch service. Utilisez toujours les API Batch prises en charge ou la console Batch pour gérer vos environnements informatiques.

Nom de rôle ou ARN incorrect

La cause la plus courante pour laquelle un environnement informatique entre dans un INVALID état est que le rôle de AWS Batch service ou le rôle Amazon EC2 Spot Fleet a un nom incorrect ou Amazon Resource Name (ARN). Cela est plus courant dans les environnements de calcul créés à l'aide du AWS CLI ou AWS des SDK. Lorsque vous créez un environnement informatique dans le Console de gestion AWS, vous AWS Batch aide à choisir le service ou les rôles Spot Fleet appropriés. Supposons toutefois que vous saisissiez manuellement le nom ou l'ARN et que vous ne les saisissiez pas correctement. Ensuite, l'environnement de calcul qui en résulte l'est égalementINVALID.

Supposons toutefois que vous saisissiez manuellement le nom ou l'ARN d'une ressource IAM dans une AWS CLI commande ou dans le code de votre SDK. Dans ce cas, AWS Batch impossible de valider la chaîne. Au lieu de cela, vous AWS Batch devez accepter la mauvaise valeur et essayer de créer l'environnement. Si la création de l'environnement AWS Batch échoue, celui-ci passe à un INVALID état et les erreurs suivantes s'affichent.

Pour un rôle de service non valide :

CLIENT_ERROR - Not authorized to perform sts:AssumeRole (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: dc0e2d28-2e99-11e7-b372-7fcc6fb65fe7)

Pour un rôle de parc d'instances Spot non valide :

CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid. (Service: AmazonEC2; Status Code: 400; Error Code: InvalidSpotFleetRequestConfig; Request ID: 331205f0-5ae3-4cea-bac4-897769639f8d) Parameter: SpotFleetRequestConfig.IamFleetRole is invalid

L'une des causes courantes de ce problème est le scénario suivant. Vous ne spécifiez le nom d'un rôle IAM que lorsque vous utilisez le AWS CLI ou les AWS kits SDK, au lieu du nom de ressource Amazon (ARN) complet. Selon la manière dont vous avez créé le rôle, l'ARN peut contenir un préfixe de aws-service-role chemin. Par exemple, si vous créez manuellement le rôle de AWS Batch service à l'aide des procédures décrites dansUtilisation de rôles liés à des services pour AWS Batch, l'ARN de votre rôle de service peut ressembler à ce qui suit.

arn:aws:iam::123456789012:role/AWSBatchServiceRole

Toutefois, si vous avez créé le rôle de service dans le cadre de l'assistant de première exécution de la console aujourd'hui, l'ARN de votre rôle de service pourrait ressembler à ce qui suit.

arn:aws:iam::123456789012:role/aws-service-role/AWSBatchServiceRole

Ce problème peut également se produire si vous associez la politique de AWS Batch niveau de service (AWSBatchServiceRole) à un rôle hors service. Par exemple, vous pouvez recevoir un message d'erreur semblable au suivant dans ce scénario :

CLIENT_ERROR - User: arn:aws:sts::account_number:assumed-role/batch-replacement-role/aws-batch is not authorized to perform: action on resource ...

Pour résoudre ce problème, effectuez l'une des opérations suivantes.

  • Utilisez une chaîne vide pour le rôle de service lorsque vous créez l'environnement de AWS Batch calcul.

  • Spécifiez le rôle de service au format suivant :arn:aws:iam::account_number:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch.

Lorsque vous ne spécifiez le nom d'un rôle IAM que lorsque vous utilisez le AWS CLI ou les AWS SDK, cela AWS Batch suppose que votre ARN n'utilise pas le préfixe de aws-service-role chemin. C'est pourquoi nous vous recommandons de spécifier l'ARN complet pour vos rôles IAM lorsque vous créez des environnements de calcul.

Pour réparer un environnement informatique mal configuré de cette façon, consultezRéparer un environnement informatique NON VALIDE.

Réparer un environnement informatique NON VALIDE

Lorsqu'un environnement informatique est dans un INVALID état défini, mettez-le à jour pour réparer le paramètre non valide. Dans le cas d'uneNom de rôle ou ARN incorrect, mettez à jour l'environnement informatique en utilisant le rôle de service approprié.

Pour réparer un environnement de calcul mal configuré
  1. Ouvrez la AWS Batch console à l'adresse https://console.aws.amazon.com/batch/.

  2. Dans la barre de navigation, sélectionnez l'option Région AWS à utiliser.

  3. Dans le panneau de navigation, choisissez Environnements de calcul.

  4. Sur la page Environnements de calcul, sélectionnez le bouton radio à côté de l'environnement de calcul à modifier. Vous devez sélectionner un environnement de calcul pour que les options du menu Actions soient disponibles.

  5. Choisissez Actions, puis Modifier.

  6. Sur la page Mettre à jour l'environnement de calcul, pour Rôle de service, choisissez le rôle IAM à utiliser avec votre environnement de calcul. La console AWS Batch affiche uniquement les rôles ayant la relation d'approbation appropriée pour les environnements de calcul.

    Astuce

    Pour savoir comment créer un rôle lié à un service, consultezUtilisation de rôles pour AWS Batch.

  7. Choisissez Enregistrer pour mettre à jour votre environnement de calcul.