Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden von AWS Batch in Go: Eine vollständige Anleitung

Verwenden von AWS Batch in Go: Eine vollständige Anleitung

王林
王林Original
2023-06-17 15:21:07993Durchsuche

AWS Batch in Go verwenden: Eine vollständige Anleitung

AWS Batch ist ein vollständig verwalteter Hosting-Service für Computerressourcen, mit dem Sie Batch-Computing-Arbeitslasten einfach planen und ausführen können. Obwohl AWS Batch viele Programmiersprachen unterstützt, wird in diesem Artikel erläutert, wie AWS Batch in der Go-Sprache verwendet wird.

Diese Anleitung zeigt Ihnen, wie Sie das Go SDK verwenden, um mit der AWS Batch-API zu interagieren, Jobdefinitionen zu erstellen, zu konfigurieren und auszuführen und wie Sie die umfassenden Funktionen von AWS Batch nutzen, um Jobs und Computerumgebungen zu verwalten.

Verwenden Sie das Go SDK, um mit der AWS Batch API zu interagieren.

Verwenden Sie das Go SDK, um einfach mit der AWS Batch API zu interagieren. Zuerst müssen Sie die Abhängigkeit „aws-sdk-go“ in Ihr Go-Projekt importieren. Sie können den folgenden Befehl verwenden, um die Abhängigkeiten zu installieren:

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

Nach dem Import der Abhängigkeiten müssen Sie den AWS Batch-Client in Ihrem Go-Code konfigurieren. Sie können den folgenden Code verwenden, um einen Client mit US West (Oregon) als Region zu erstellen:

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)

Erstellen Sie eine Jobdefinition

Bevor Sie AWS Batch verwenden, müssen Sie eine Jobdefinition erstellen. Eine Jobdefinition ist eine Reihe von Parametern, die beschreiben, wie ein Job ausgeführt wird. Sie können einige Parameter wie Image-Name, Containerbefehl, Umgebungsvariablen usw. definieren, um die Anforderungen des Jobs zu definieren.

Das folgende Codebeispiel zeigt, wie man eine Jobdefinition in Go erstellt:

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)
}

Dieser Code erstellt eine Containerjobdefinition in AWS Batch, die Informationen über den Job enthält, wie z. B. Bilder, CPU- und Speicheranforderungen, auszuführende Befehle usw . .

Erstellen und konfigurieren Sie die Computerumgebung

Die Computerumgebung ist die Infrastruktur, auf der Batch-Jobs ausgeführt werden. Sie besteht aus einer Beschreibung von Computerressourcen und Stacks. Sie können die AWS Batch-Konsole oder das Go SDK verwenden, um eine Rechenumgebung zu erstellen.

Das folgende Codebeispiel zeigt, wie man eine Rechenumgebung in Go erstellt:

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)
}

Dieser Code erstellt eine Rechenumgebung in AWS Batch. Eine Computerumgebung besteht aus einer Reihe von Instanzen, die für die Ausführung von Batch-Jobs konfiguriert sind.

Ausführen eines Jobs

Um einen Job in AWS Batch zu starten, erstellen Sie einen Job aus der Jobdefinition und senden Sie ihn an AWS Batch. Das folgende Codebeispiel zeigt, wie ein Job in Go gestartet wird:

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)
}

Dieser Code übermittelt einen Job mit der Jobdefinition und gibt den Namen des Jobs an.

Jobs und Computerumgebungen verwalten

Neben dem Erstellen und Ausführen von Jobs und Computerumgebungen können Sie auch Jobs und Computerumgebungen mithilfe der AWS Batch-API verwalten. Das folgende Codebeispiel zeigt, wie eine Rechenumgebung in Go gelöscht wird:

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

Dieser Code löscht die Rechenumgebung und löscht alle Ressourcen in der Rechenumgebung.

Fazit

In diesem Leitfaden haben wir eine vollständige Anleitung zur Verwendung der Sprache AWS Batch in Go vorgestellt, einschließlich der Erstellung einer Jobdefinition, einer Rechenumgebung und der Ausführung des Jobs. AWS Batch bietet eine leistungsstarke und benutzerfreundliche Plattform zur einfachen Verwaltung und Skalierung von Computerressourcen. Wenn Sie nach einer Batch-Computing-Lösung suchen, die hoch skalierbar, flexibel und einfach zu verwalten ist, ist AWS Batch eine gute Wahl.

Das obige ist der detaillierte Inhalt vonVerwenden von AWS Batch in Go: Eine vollständige Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn