2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

aws-sdk-goでFargateタスクを実行する

Posted at

背景

GolangのSDKからFargate起動タイプのECSタスクを起動したかったが、意外と情報が無かったのでまとめます。

検証環境

  • goバージョン
    • go version go1.14.2 darwin/amd64
  • OS
    • macOS Catalina バージョン 10.15.1

コード

package main

import (
    "fmt"
    "github.com/aws/aws-sdk-go/service/ecs"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/awserr"
    "github.com/aws/aws-sdk-go/aws/session"
)

func main() {
  svc := ecs.New(session.New(aws.NewConfig().WithRegion("ap-northeast-1")))
  input := &ecs.RunTaskInput{
    Cluster:        aws.String("ClusterName"),        // クラスター名
    TaskDefinition: aws.String("TaskDefinitionName"), // バージョン指定しない場合はLATESTが選択される
  }

  input.NetworkConfiguration = &ecs.NetworkConfiguration{
    AwsvpcConfiguration: &ecs.AwsVpcConfiguration{
      Subnets: aws.StringSlice([]string{"subnetId"}), // サブネットID
      AssignPublicIp: aws.String("DISABLED"), // 必要に応じて
    },
  }

  input.LaunchType = aws.String("FARGATE")

  result, err := svc.RunTask(input)
  if err != nil {
    if aerr, ok := err.(awserr.Error); ok {
      fmt.Println(aerr.Error())
    }
    fmt.Println(err.Error())

    return
  }

  fmt.Println(result)
}
  • 下記項目は各自の環境に読み替えてください
    • Cluster
    • TaskDefinition
    • Subnets
    • AssignPublicIp

ポイント

   input.NetworkConfiguration = &ecs.NetworkConfiguration{
    AwsvpcConfiguration: &ecs.AwsVpcConfiguration{
      Subnets: aws.StringSlice([]string{"subnetId"}), // サブネットID
      AssignPublicIp: aws.String("DISABLED"), // 必要に応じて
    },
  }
  input.LaunchType = aws.String("FARGATE") // Fargateで起動する為に必須

Fargateはawsvpcで動くのでネットワーク構成の指定が必要なようです。
他にパラメータを足したい時は&ecsRequest Syntaxのキー名を参考に必要なtypeを足すといいようです。

参考記事

example_ECS_RunTask_shared00
Types(直リンクに出来なかったのでTypesの項目を参照ください)
Request Syntax

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?