Provides guidance for writing, packaging and executing Apache Beam pipelines on GCP using Cloud Dataflow. Use when: - Creating an Apache Beam Dataflow pipeline. - Creating a Google Flex Template.
82%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Expert guidance for writing and packaging Apache Beam pipelines to run on Google Cloud Dataflow.
Use this section when creating a new project for a Dataflow pipeline.
requirements.txt, and other similar files where versions
are specified.Use this section when configuring a Dataflow Java pipeline project using gradle.
com.github.johnrengelman.shadow) unless the user explicitly requests a
Fat Jar.application plugin for
passing command-line parameters.slf4j-api version pulled transitively by Apache Beam.slf4j-simple,
logback-classic, etc.) to exactly match the major/minor version of the
resolved slf4j-api.When creating new Dataflow pipeline projects, configure them as a Flex template.
Flex Templates offer a hermetic and reproducible launch environment, and are
easy to launch with gcloud or with orchestrators like Cloud Composer.
Follow the Flex Templates section below.
--sdk_container_image). Whenever
configuring or suggesting a Dataflow Flex Template for a Python pipeline
that requires extra dependencies (e.g., using --requirements_file,
--setup_file, or --extra_package), YOU MUST recommend the Single
Docker Image Configuration as detailed in
python_flex_template_reference.md.cloudbuild.yaml out-of-the-box for
building and pushing images unless local setup is explicitly requested.When launching Python Pipelines without a Flex Template with
DataflowRunner, you MUST scan the pipeline project directory for the
following files:
requirements.txt:
--requirements_file pipeline option.setup.py:
--setup_file pipeline option. This is
critical if the pipeline uses local modules or packages.When launching Python Pipelines with a Flex Template, if the Flex Template
image is also the SDK Container image (Single Docker Image Configuration),
then you MUST supply the image in the sdk_container_image parameter.
Confirm the launch command with the user.
your-gcp-project-id) for GCP
resources when drafting run scripts or configs. Action: If values are
unknown, proactively run commands like gcloud config get-value project to
find active resources to pre-fill scripts for the user. Confirm the values
with the user before proceeding.YOU MUST use this section when the user asks about performance of their dataflow pipelines. This can be used to debug issues like pipeline slowness, pipeline failures, etc.
Understand User Request: Extract Job ID, Project ID, Transform Name (optional), and Time Window.
Transform Name Mapping: If the user requires transform-based debugging,
map user-provided Transform Names to actual Dataflow stage or ptransform
and apply to filters while querying:
This mapping can be extracted from gcloud dataflow jobs describe JOB_ID --full --format="json(pipelineDescription.executionPipelineStage)".
name property at the parent stage level. This
matches "F[digit]" (e.g. "F6").componentTransform array, read
precisely from userName or originalTransform (e.g.
"RateLimitAndLog/ParMultiDo(RateLimitAndLog)"). and use it as
ptransform.resource.labels.step_id="[Extracted ptransform name]".metric.labels.ptransform="[Extracted ptransform name]" or
metric.labels.stage="[Extracted stage_id]".Query Telemetry:
Analysis:
Output: Provide a synthesized summary with symptoms, potential root
cause, and links to relevant code transforms (using file:///... format).
Follow this template to structure your response:
saski/arnesto
752f690
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.