The Cloud Function HTTP job type invokes an HTTP-triggered Google
Cloud Function (both 1st gen and 2nd gen) by calling its public URL
with an OIDC identity token. The function is identified by its full
resource name — Polysync stores
projects/{project}/locations/{location}/functions/{functionName} in
the Job's External Id.
This job type is supported on the Google Cloud Functions platform.
Cloud Function HTTP (set automatically on import).POST. Determines
where Polysync parameters are placed.GET projects/{project}/locations/{location}/functions?pageSize=100
(Cloud Functions v2 API, paginated). Only HTTP-triggered functions are
imported; event-triggered functions are excluded. The function's
public URL is captured from serviceConfig.uri.
| HTTP Method | Where parameters go |
|---|---|
GET / HEAD / DELETE |
Query string |
POST / PUT / PATCH |
JSON body |
Values are typed via the Polysync Data Type and rendered as JSON tokens (string, number, bool, JSON object, JSON array).
| Direction | Sent in request | Updated from response |
|---|---|---|
Input |
✅ | ❌ |
Output |
❌ | ✅ |
Input&Output |
✅ | ✅ |
The Authorization header is set to a Bearer OIDC identity token whose audience is the function URL host — Cloud Run / Cloud Functions enforces invoker IAM via this token.
The response body is parsed as JSON:
Output / Input&Output parameter whose name
matches a top-level response property, that value is written back._response.<fieldName>._response
(truncated to 1000 characters).If the response contains a statusQueryUrl, Polysync uses it to poll
for long-running function status (re-running the output extraction on
each poll).
serviceConfig.uri with the assembled body / query string and an
OIDC bearer token.Success (and outputs populated).
HTTP 202 with statusQueryUrl → Running (polled).
HTTP 4xx / 5xx → Failed.The composite RunId is "{functionName}/{invocationId}" (a Polysync
GUID).
https://console.cloud.google.com/functions/details/{location}/{functionName}
?project={project}
202 Accepted with { "statusQueryUrl": "…" }
so Polysync polls cleanly instead of timing out the synchronous call.Content-Type: application/json)
so output parameter extraction works._response for the raw body.