如何 运行 GCP 上受防护的 VM 中的模板化 Cloud Dataflow 作业
How to run a templated Cloud Dataflow job in a Shielded VMs on GCP
根据 public documentation,可以在 GCP 上的受防护 VM 中 运行 Cloud Dataflow 作业。
对于非模板作业,如 Quick Start manual for Java 中所述,可以通过提交 --dataflowServiceOptions=enable_secure_boot
标志来实现,如下所示:
mvn -Pdataflow-runner compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Djava.util.logging.config.file=logging.properties -Dexec.args="--project=${PROJECT_ID} \
--gcpTempLocation=gs://${BUCKET_NAME}/temp/ \
--output=gs://${BUCKET_NAME}/output \
--runner=DataflowRunner \
--region=${REGION} \
--dataflowServiceOptions=enable_secure_boot"
但是当使用模板作业时,例如开始使用 gcloud 或 Terraform:
gcloud dataflow jobs run word-count --gcs-location gs://dataflow-templates-europe-west3/latest/Word_Count --region ${REGION} --staging-location gs://${BUCKET_NAME}/temp --parameters inputFile=gs://${BUCKET_NAME}/sample.txt,output=gs://${BUCKET_NAME}/sample-output
启动的 VM 未受保护(在 运行 时查看其“安全启动”标志时)。
我如何运行 GCP 上受防护的 VM 中的模板化 Dataflow 作业?
gcloud
要在受防护的 VM 上部署 Dataflow 作业,必须将 additional-experiments
标志设置为 enable_secure_boot
。我对此进行了测试,并能够看到安全启动在作业运行时处于打开状态。
gcloud dataflow jobs run word-count-on-shielded-vm-from-gcloud --project=project-id \
--gcs-location gs://dataflow-templates-europe-west3/latest/Word_Count \
--region us-central1 --staging-location gs://bucket-name/temp \
--parameters inputFile=gs://apache-beam-samples/shakespeare/kinglear.txt,output=gs://bucket-name/sample-output \
--additional-experiments=enable_secure_boot
地形
通过将带有 enable_secure_boot
的 additional_experiments
参数添加到 google_dataflow_job
资源,Dataflow 作业可以部署在受保护的 VM 上。
resource "google_dataflow_job" "word_count_job" {
name = "sample-dataflow-wordcount-job"
template_gcs_path = "gs://dataflow-templates-europe-west3/latest/Word_Count"
temp_gcs_location = "${google_storage_bucket.bucket.url}/temp"
parameters = {
inputFile = "${google_storage_bucket.bucket.url}/input_file.txt",
output = "${google_storage_bucket.bucket.url}/word_count.txt"
}
additional_experiments = [
"enable_secure_boot"
]
}
根据 public documentation,可以在 GCP 上的受防护 VM 中 运行 Cloud Dataflow 作业。
对于非模板作业,如 Quick Start manual for Java 中所述,可以通过提交 --dataflowServiceOptions=enable_secure_boot
标志来实现,如下所示:
mvn -Pdataflow-runner compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Djava.util.logging.config.file=logging.properties -Dexec.args="--project=${PROJECT_ID} \
--gcpTempLocation=gs://${BUCKET_NAME}/temp/ \
--output=gs://${BUCKET_NAME}/output \
--runner=DataflowRunner \
--region=${REGION} \
--dataflowServiceOptions=enable_secure_boot"
但是当使用模板作业时,例如开始使用 gcloud 或 Terraform:
gcloud dataflow jobs run word-count --gcs-location gs://dataflow-templates-europe-west3/latest/Word_Count --region ${REGION} --staging-location gs://${BUCKET_NAME}/temp --parameters inputFile=gs://${BUCKET_NAME}/sample.txt,output=gs://${BUCKET_NAME}/sample-output
启动的 VM 未受保护(在 运行 时查看其“安全启动”标志时)。
我如何运行 GCP 上受防护的 VM 中的模板化 Dataflow 作业?
gcloud
要在受防护的 VM 上部署 Dataflow 作业,必须将 additional-experiments
标志设置为 enable_secure_boot
。我对此进行了测试,并能够看到安全启动在作业运行时处于打开状态。
gcloud dataflow jobs run word-count-on-shielded-vm-from-gcloud --project=project-id \
--gcs-location gs://dataflow-templates-europe-west3/latest/Word_Count \
--region us-central1 --staging-location gs://bucket-name/temp \
--parameters inputFile=gs://apache-beam-samples/shakespeare/kinglear.txt,output=gs://bucket-name/sample-output \
--additional-experiments=enable_secure_boot
地形
通过将带有 enable_secure_boot
的 additional_experiments
参数添加到 google_dataflow_job
资源,Dataflow 作业可以部署在受保护的 VM 上。
resource "google_dataflow_job" "word_count_job" {
name = "sample-dataflow-wordcount-job"
template_gcs_path = "gs://dataflow-templates-europe-west3/latest/Word_Count"
temp_gcs_location = "${google_storage_bucket.bucket.url}/temp"
parameters = {
inputFile = "${google_storage_bucket.bucket.url}/input_file.txt",
output = "${google_storage_bucket.bucket.url}/word_count.txt"
}
additional_experiments = [
"enable_secure_boot"
]
}