ramonvermeulen opened a new issue, #49695:
URL: https://github.com/apache/airflow/issues/49695

   ### Apache Airflow Provider(s)
   
   google
   
   ### Versions of Apache Airflow Providers
   
   Hello Everyone!
   
   Not entirely sure if this is a bug within the `CloudRunExecuteJobOperator` 
or a bug afterall (I am quite new to Airflow).
   
   I am running into an issue with `render_template_as_native_obj` and I can't 
figure out what is going wrong.
   Maybe one of you has an idea why `render_template_as_native_obj` works 
correctly on the `PythonOperator` but seems to fail on the 
`CloudRunExecuteJobOperator`?
   
   
   My DAG:
   ```
   import datetime
   
   from airflow import DAG
   from airflow.providers.google.cloud.operators.cloud_run import (
       CloudRunExecuteJobOperator,
   )
   from airflow.models.param import Param, ParamsDict
   from airflow.providers.standard.operators.python import PythonOperator
   
   
   default_args = {
       "start_date": datetime.datetime(2025, 1, 1),
       "retries": 0,
   }
   
   params = ParamsDict(
       {
           "project_id": Param(
               default="XXXXXXXXXXX",
               type="string",
               description="GCP Project ID in which the cloud run job is 
deployed",
           ),
           "job_name": Param(
               default="XXXXXXXXXXX",
               type="string",
               description="Name of the cloud run job to execute",
           ),
           "region": Param(
               default="europe-west4",
               type="string",
               description="Region in which the cloud run job is deployed",
           ),
           "container_command": Param(
               default=["build", "--target", "test"],
               type="array",
               description="Command to execute in the container",
           ),
           "polling_period_seconds": Param(
               default=5,
               type="integer",
               description="Frequency of polling the underlying cloud run job",
           ),
           "timeout_seconds": Param(
               default=600,
               type="integer",
               description="Timeout for the cloud run job execution to cancel 
the execution",
           ),
       }
   )
   
   with DAG(
       dag_id="ae_adh_dbt",
       default_args=default_args,
       schedule_interval="*/15 * * * *",
       catchup=False,
       tags=["cloud_run"],
       params=params,
       render_template_as_native_obj=True,
   ) as dag:
   
       def test(**kwargs):
           print("project_id = " + str(type(kwargs["project_id"])))
           print("polling_period_seconds = " + 
str(type(kwargs["polling_period_seconds"])))
           print("timeout_seconds = " + str(type(kwargs["timeout_seconds"])))
   
       logging_job = PythonOperator(
           task_id="logging_job",
           python_callable=test,
           op_kwargs={
               "project_id": "{{ params.project_id }}",
               "polling_period_seconds": "{{ params.polling_period_seconds }}",
               "timeout_seconds": "{{ params.timeout_seconds }}",
           },
       )
       trigger_cloud_run_job = CloudRunExecuteJobOperator(
           task_id="trigger_cloud_run_job",
           project_id="{{ params.project_id }}",
           region="{{ params.region }}",
           job_name="{{ params.job_name }}",
           overrides={
               "container_overrides": [
                   {
                       "args": "{{ params.container_command }}",
                   }
               ],
           },
           polling_period_seconds="{{ params.polling_period_seconds }}",
           timeout_seconds="{{ params.timeout_seconds }}",
           gcp_conn_id="google_cloud_default",
           deferrable=True,
       )
   
       logging_job >> trigger_cloud_run_job
   ```
   
   The `logging_job` logs indicates that `render_template_as_native_obj` works 
correctly:
   ```
   [2025-04-24, 08:30:03 UTC] {logging_mixin.py:190} INFO - project_id = <class 
'str'>
   [2025-04-24, 08:30:03 UTC] {logging_mixin.py:190} INFO - 
polling_period_seconds = <class 'int'>
   [2025-04-24, 08:30:03 UTC] {logging_mixin.py:190} INFO - timeout_seconds = 
<class 'int'>
   ```
   
   But then in the `CloudRunExecuteJobOperator` I get the following type 
related error:
   ```
   [2025-04-24, 09:45:10 CEST] {baseoperator.py:1818} ERROR - Trigger 
failed:\nTraceback (most recent call last):\n\n  File 
"/opt/python3.11/lib/python3.11/site-packages/airflow/jobs/triggerer_job_runner.py",
 line 558, in cleanup_finished_triggers\n    result = 
details["task"].result()\n             ^^^^^^^^^^^^^^^^^^^^^^^^\n\n  File 
"/opt/python3.11/lib/python3.11/site-packages/airflow/jobs/triggerer_job_runner.py",
 line 631, in run_trigger\n    async for event in trigger.run():\n\n  File 
"/opt/python3.11/lib/python3.11/site-packages/airflow/providers/google/cloud/triggers/cloud_run.py",
 line 133, in run\n    await asyncio.sleep(self.polling_period_seconds)\n\n  
File "/opt/python3.11/lib/python3.11/asyncio/tasks.py", line 639, in sleep\n    
if delay <= 0:\n       ^^^^^^^^^^\n\nTypeError: '<=' not supported between 
instances of 'str' and 'int'\n
   ```
   I am using Airflow on cloud-composer, version 
(composer-3-airflow-2.10.5-build.0):
   `apache-airflow==2.10.5+composer`
   
   
   
   ### Apache Airflow version
   
   2.10.5
   
   ### Operating System
   
   Not sure
   
   ### Deployment
   
   Google Cloud Composer
   
   ### Deployment details
   
   _No response_
   
   ### What happened
   
   _No response_
   
   ### What you think should happen instead
   
   _No response_
   
   ### How to reproduce
   
   Use the provided DAG with a cloud run job instance in the cloud
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to