Go以Google API Client Libraries來建立GCP Partner Interconnect connection的VLAN attachment。
事前要求
參考「GCP 設定本機應用程式存取憑證 Application Default Credentials」設定credential。
參考「Golang 建立GCP Interconnect Cloud Router」建立Cloud Router。
建立Partner Interconnect connection VLAN attachment
呼叫compute.InterconnectAttachmentsService.Insert
輸入project id、region、compute.InterconnectAttachment
參數來建立VLAN attachment。
compute.InterconnectAttachment
參數屬性如下:
Name
- 輸入VLAN atachment的名稱。EdgeAvailabilityDomain
- 輸入AVAILABILITY_DOMAIN_ANY
。Router
- 輸入cloud router的URL。Type
- 輸入PARTNER
。
main.go
package main
import (
"context"
compute "google.golang.org/api/compute/v1"
)
func main() {
ctx := context.Background()
service, err := compute.NewService(ctx)
if err != nil {
panic(err)
}
projectId := "project-id-1"
region := "asia-east1"
interconnectAttachmentService := compute.NewInterconnectAttachmentsService(service)
vlanAttachement := &compute.InterconnectAttachment{
Name: "demo-vlan-a-002",
EdgeAvailabilityDomain: "AVAILABILITY_DOMAIN_1",
Router: "https://www.googleapis.com/compute/v1/projects/project-id-1/regions/asia-east1/routers/demo-cloudrouter-002",
Type: "PARTNER",
}
call := interconnectAttachmentService.Insert(projectId, region, vlanAttachement)
_, err = call.Do()
if err != nil {
panic(err)
}
}
測試
很奇怪用gcloud cli不需提供Interconnect URL即可成功建立VLAN attachment,但這邊用SDK API卻需要Interconnect URL?原來必須把compute.InterconnectAttachment.Type
設為PARTNER
才可成功新增VLAN attachment。
沒有留言:
張貼留言