在 Go 中 Google Cloud Dataflow 可以 运行 没有外部 IP 地址吗?
Can Google Cloud Dataflow be run without an external IP address in Go?
根据 documentation 可以在不使用 public IP 的情况下 运行 数据流。但它只有 Java 和 Python 的信息。我无法在 Go 中找到一种方法:-(。
Dataflow 尚未正式支持 Go(因此缺少文档),但 same flags 存在于 Go SDK 中并且应该以完全相同的方式工作。
解决方法:
IpConfiguration: "WORKER_IP_PRIVATE"
像这样的上下文:
response := dataflowService.Projects.Locations.Templates.Create(PROJECT_ID, location, &dataflow.CreateJobFromTemplateRequest{
Environment: &dataflow.RuntimeEnvironment{
AdditionalExperiments: []string{},
AdditionalUserLabels: map[string]string{},
BypassTempDirValidation: false,
EnableStreamingEngine: false,
IpConfiguration: "WORKER_IP_PRIVATE",
KmsKeyName: "",
MachineType: "",
MaxWorkers: 0,
Network: "",
NumWorkers: 0,
ServiceAccountEmail: "",
Subnetwork: "https://www.googleapis.com/compute/v1/projects/" + HOST_PROJECT_ID + "/regions/europe-north1/subnetworks/" + SUBNETWORK + "",
TempLocation: "",
WorkerRegion: "",
WorkerZone: "",
Zone: "",
ForceSendFields: []string{},
NullFields: []string{},
},
根据 documentation 可以在不使用 public IP 的情况下 运行 数据流。但它只有 Java 和 Python 的信息。我无法在 Go 中找到一种方法:-(。
Dataflow 尚未正式支持 Go(因此缺少文档),但 same flags 存在于 Go SDK 中并且应该以完全相同的方式工作。
解决方法:
IpConfiguration: "WORKER_IP_PRIVATE"
像这样的上下文:
response := dataflowService.Projects.Locations.Templates.Create(PROJECT_ID, location, &dataflow.CreateJobFromTemplateRequest{
Environment: &dataflow.RuntimeEnvironment{
AdditionalExperiments: []string{},
AdditionalUserLabels: map[string]string{},
BypassTempDirValidation: false,
EnableStreamingEngine: false,
IpConfiguration: "WORKER_IP_PRIVATE",
KmsKeyName: "",
MachineType: "",
MaxWorkers: 0,
Network: "",
NumWorkers: 0,
ServiceAccountEmail: "",
Subnetwork: "https://www.googleapis.com/compute/v1/projects/" + HOST_PROJECT_ID + "/regions/europe-north1/subnetworks/" + SUBNETWORK + "",
TempLocation: "",
WorkerRegion: "",
WorkerZone: "",
Zone: "",
ForceSendFields: []string{},
NullFields: []string{},
},