Maison  >  Article  >  développement back-end  >  Utilisation d'AWS Batch in Go : un guide complet

Utilisation d'AWS Batch in Go : un guide complet

王林
王林original
2023-06-17 15:21:07933parcourir

Utilisation d'AWS Batch in Go : un guide complet

AWS Batch est un service d'hébergement de ressources informatiques entièrement géré qui vous permet de planifier et d'exécuter facilement des charges de travail de calcul par lots. Bien qu'AWS Batch prenne en charge de nombreux langages de programmation, cet article explique comment utiliser le langage AWS Batch in Go.

Ce guide vous montrera comment utiliser le SDK Go pour interagir avec l'API AWS Batch, créer, configurer et exécuter des définitions de tâches, et comment utiliser les fonctionnalités complètes d'AWS Batch pour gérer les tâches et les environnements informatiques.

Utilisez Go SDK pour interagir avec l'API AWS Batch

Utilisez Go SDK pour interagir facilement avec l'API AWS Batch. Tout d'abord, vous devez importer la dépendance « aws-sdk-go » dans votre projet Go. Vous pouvez utiliser la commande suivante pour installer les dépendances :

go get -u github.com/aws/aws-sdk-go

Après avoir importé les dépendances, vous devez configurer le client AWS Batch dans votre code Go. Vous pouvez utiliser le code suivant pour créer un client avec US West (Oregon) comme région :

import (
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/batch"
)

sess := session.Must(session.NewSessionWithOptions(session.Options{
    Config: aws.Config{
        Region: aws.String("us-west-2"),
    },
}))

svc := batch.New(sess)

Créer une définition de tâche

Avant d'utiliser AWS Batch, vous devez créer une définition de tâche. Une définition de travail est un ensemble de paramètres qui décrit comment exécuter un travail. Vous pouvez définir certains paramètres, tels que le nom de l'image, la commande du conteneur, les variables d'environnement, etc., pour définir les exigences du travail.

L'exemple de code suivant montre comment créer une définition de tâche dans Go :

import (
    "github.com/aws/aws-sdk-go/service/batch"
    "github.com/aws/aws-sdk-go/service/batch/batchiface"
)

func createJobDefinition(svc batchiface.BatchAPI, family string, containerName string, image string) (*batch.RegisterJobDefinitionOutput, error) {
    input := &batch.RegisterJobDefinitionInput{
        JobDefinitionName: aws.String(family),
        Type:              aws.String(batch.JobDefinitionTypeContainer),
        ContainerProperties: &batch.ContainerProperties{
            Image:   aws.String(image),
            Vcpus:   aws.Int64(1),
            Memory:  aws.Int64(2000),
            Command: []*string{aws.String("echo"), aws.String("Hello World!")},
        },
    }
    return svc.RegisterJobDefinition(input)
}

Ce code créera une définition de tâche de conteneur dans AWS Batch qui contient des informations sur la tâche telles que des images, les exigences en matière de CPU et de mémoire, les commandes à exécuter, etc. .

Créer et configurer l'environnement informatique

L'environnement informatique est l'infrastructure sur laquelle les travaux par lots s'exécutent. Il consiste en une description des ressources et des piles informatiques. Vous pouvez utiliser la console AWS Batch ou utiliser le SDK Go pour créer un environnement de calcul.

L'exemple de code suivant montre comment créer un environnement de calcul dans Go :

func createComputeEnvironment(svc batchiface.BatchAPI, name string, instanceType string, minvCpus int64, maxvCpus int64, desiredvCpus int64, subnets []string, securityGroups []string) (*batch.CreateComputeEnvironmentOutput, error) {
    input := &batch.CreateComputeEnvironmentInput{
        ComputeEnvironmentName: aws.String(name),
        Type:                  aws.String("EC2"),
        ServiceRole:           aws.String("AWSBatchServiceRole"),
        ComputeResources: &batch.ComputeResource{
            Type: aws.String("EC2"),
            Ec2Configuration: &batch.Ec2Configuration{
                ImageIdOverride: aws.String("ami-035b3c7efe6d061d5"),
            },
            Subnets:        aws.StringSlice(subnets),
            SecurityGroupIds: aws.StringSlice(securityGroups),
            InstanceTypes:  []*string{aws.String(instanceType)},
            MinvCpus:       aws.Int64(minvCpus),
            MaxvCpus:       aws.Int64(maxvCpus),
            DesiredvCpus:   aws.Int64(desiredvCpus),
        },
    }
    return svc.CreateComputeEnvironment(input)
}

Ce code créera un environnement de calcul dans AWS Batch. Un environnement informatique se compose d'un ensemble d'instances configurées pour exécuter des tâches par lots.

Exécuter une tâche

Pour démarrer une tâche dans AWS Batch, créez une tâche à partir de la définition de tâche et soumettez-la à AWS Batch. L'exemple de code suivant montre comment démarrer un travail dans Go :

func submitJob(svc batchiface.BatchAPI, jobDefinitionArn string, jobName string) (*batch.SubmitJobOutput, error) {
    input := &batch.SubmitJobInput{
        JobDefinition: aws.String(jobDefinitionArn),
        JobName:       aws.String(jobName),
    }
    return svc.SubmitJob(input)
}

Ce code soumettra un travail contenant la définition du travail, en spécifiant le nom du travail.

Gérer les tâches et les environnements informatiques

En plus de créer et d'exécuter des tâches et des environnements informatiques, vous pouvez également gérer des tâches et des environnements informatiques à l'aide de l'API AWS Batch. L'exemple de code suivant montre comment supprimer un environnement de calcul dans Go :

func deleteComputeEnvironment(svc batchiface.BatchAPI, name string) (*batch.DeleteComputeEnvironmentOutput, error) {
    input := &batch.DeleteComputeEnvironmentInput{
        ComputeEnvironment: aws.String(name),
    }
    return svc.DeleteComputeEnvironment(input)
}

Ce code supprimera l'environnement de calcul et effacera toutes les ressources de l'environnement de calcul.

Conclusion

Dans ce guide, nous avons présenté un guide complet sur la façon d'utiliser le langage AWS Batch in Go, y compris comment créer une définition de tâche, un environnement de calcul et comment exécuter la tâche. AWS Batch fournit une plateforme puissante et facile à utiliser pour gérer et faire évoluer facilement les ressources informatiques. Si vous recherchez une solution de calcul par lots hautement évolutive, flexible et facile à gérer, AWS Batch est un excellent choix.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn