Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan AWS Batch in Go: Panduan Lengkap

Menggunakan AWS Batch in Go: Panduan Lengkap

王林
王林asal
2023-06-17 15:21:07933semak imbas

Menggunakan AWS Batch in Go: Panduan Lengkap

AWS Batch ialah perkhidmatan pengehosan sumber pengkomputeran terurus sepenuhnya yang membolehkan anda menjadualkan dan melaksanakan beban kerja pengkomputeran kelompok dengan mudah. Walaupun AWS Batch menyokong banyak bahasa pengaturcaraan, artikel ini akan menerangkan cara menggunakan AWS Batch dalam bahasa Go.

Panduan ini akan menunjukkan kepada anda cara menggunakan Go SDK untuk berinteraksi dengan AWS Batch API, mencipta, mengkonfigurasi dan melaksanakan definisi kerja serta cara menggunakan keupayaan komprehensif AWS Batch untuk mengurus kerja dan persekitaran pengkomputeran .

Gunakan Go SDK untuk berinteraksi dengan AWS Batch API

Gunakan Go SDK untuk berinteraksi dengan mudah dengan AWS Batch API. Mula-mula, anda perlu mengimport pergantungan "aws-sdk-go" dalam projek Go anda. Anda boleh menggunakan arahan berikut untuk memasang kebergantungan:

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

Selepas mengimport kebergantungan, anda perlu mengkonfigurasi klien AWS Batch dalam kod Go anda. Anda boleh menggunakan kod berikut untuk mencipta pelanggan dengan US West (Oregon) sebagai rantau:

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)

Cipta definisi kerja

Sebelum menggunakan AWS Batch, anda perlu mencipta definisi kerja. Definisi kerja ialah satu set parameter yang menerangkan cara menjalankan kerja. Anda boleh menentukan beberapa parameter, seperti nama imej, arahan kontena, pembolehubah persekitaran, dsb., untuk mentakrifkan keperluan kerja.

Contoh kod berikut menunjukkan cara membuat definisi kerja dalam 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)
}

Kod ini akan mencipta definisi kerja kontena dalam AWS Batch yang mengandungi maklumat tentang kerja seperti imej, CPU dan Keperluan memori, arahan untuk dilaksanakan, dsb.

Buat dan konfigurasikan persekitaran pengkomputeran

Persekitaran pengkomputeran ialah infrastruktur tempat kerja kelompok dijalankan. Ia terdiri daripada penerangan sumber pengkomputeran dan tindanan. Anda boleh menggunakan konsol AWS Batch atau menggunakan Go SDK untuk mencipta persekitaran pengiraan.

Contoh kod berikut menunjukkan cara mencipta persekitaran pengiraan dalam 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)
}

Kod ini akan mencipta persekitaran pengiraan dalam AWS Batch. Persekitaran pengkomputeran terdiri daripada satu set kejadian yang dikonfigurasikan untuk menjalankan kerja kelompok.

Jalankan kerja

Untuk memulakan kerja dalam AWS Batch, buat kerja daripada definisi kerja dan serahkannya kepada AWS Batch. Contoh kod berikut menunjukkan cara memulakan kerja dalam 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)
}

Kod ini akan menyerahkan kerja yang mengandungi definisi kerja, dengan menyatakan nama kerja.

Urus kerja dan persekitaran pengkomputeran

Selain mencipta dan menjalankan kerja dan persekitaran pengkomputeran, anda juga boleh menggunakan AWS Batch API untuk mengurus kerja dan persekitaran pengkomputeran. Contoh kod berikut menunjukkan cara memadamkan persekitaran pengiraan dalam Go:

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

Kod ini akan memadamkan persekitaran pengiraan dan akan mengosongkan semua sumber dalam persekitaran pengiraan.

Kesimpulan

Dalam panduan ini, kami telah membentangkan panduan lengkap tentang cara menggunakan AWS Batch dalam bahasa Go, termasuk cara mencipta definisi kerja, persekitaran pengiraan dan cara menjalankan kerja . AWS Batch menyediakan platform yang berkuasa dan mudah digunakan untuk mengurus dan menskalakan sumber pengkomputeran dengan mudah. Jika anda sedang mencari penyelesaian pengkomputeran kelompok yang sangat berskala, fleksibel dan mudah diurus, AWS Batch ialah pilihan yang bagus.

Atas ialah kandungan terperinci Menggunakan AWS Batch in Go: Panduan Lengkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn