ほぼ公式ドキュメントのままですが、リクエストBodyの説明が少なかったので例を載せておきます。
import (
"fmt"
"log"
"golang.org/x/net/context"
"golang.org/x/oauth2/google"
"google.golang.org/api/sqladmin/v1beta4"
)
func main() {
ctx := context.Background()
c, err := google.DefaultClient(ctx, sqladmin.CloudPlatformScope)
if err != nil {
log.Fatal(err)
}
sqladminService, err := sqladmin.New(c)
if err != nil {
log.Fatal(err)
}
// GCPのプロジェクトID プロジェクト名ではないので注意
project := "my-project"
// CloudSQLのインスタンスID
instance := "my-instance"
rb := &sqladmin.InstancesImportRequest{
request := &sqladmin.InstancesImportRequest{
ImportContext: &sqladmin.ImportContext{
CsvImportOptions: &sqladmin.ImportContextCsvImportOptions{
Table: "table_name",
Columns: []string{"id"},
},
Database: "dbname",
FileType: "CSV",
Kind: "sql#importContext",
Uri: "gs://bucketName/target.csv", //GCSに置いたCSVへのパス
},
}
}
resp, err := sqladminService.Instances.Import(project, instance, rb).Context(ctx).Do()
if err != nil {
log.Fatal(err)
}
// レスポンスはOperationというオブジェクト型
fmt.Printf("%#v\n", resp)
}
公式ドキュメントは下記。
Method: instances.import | Cloud SQL for MySQL | Google Cloud
コメント