deploy-cloud-functions icon indicating copy to clipboard operation
deploy-cloud-functions copied to clipboard

Unable to add "pathPattern" as an event trigger filter

Open mudassarzahid opened this issue 1 year ago • 4 comments

TL;DR

I want to deploy a cloud function that is supposed to be triggered when a document is created in firebase. I get an error when trying to specify the path for the newly created document (the documentation is not very clear about how to specify the path in the yaml file, e.g. what are the possible attributes for event_trigger_filters?).

Expected behavior

No response

Observed behavior

No response

Action YAML

name: Deploy Workflow

on:
  push:

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest

    steps:
      - id: checkout
        name: Checkout
        uses: actions/checkout@v4

      - id: auth
        name: Authenticate to Google Cloud
        uses: google-github-actions/auth@v2
        with:
          token_format: access_token
          project_id: project-id
          workload_identity_provider: <workload-identity-provider>
          service_account: "[email protected]"

      - name: Install dependencies
        run: npm install

      - name: Build
        run: npm run build

      - name: Deploy function-name
        uses: google-github-actions/deploy-cloud-functions@main
        with:
          name: function-name
          entry_point: function-name
          runtime: "nodejs20"
          region: "europe-west1"
          build_service_account: "[email protected]"
          service_account: "[email protected]"
          event_trigger_type: "google.cloud.firestore.document.v1.created"
          event_trigger_service_account: "[email protected]"
          event_trigger_filters: |-
            pathPattern="projects/project-id/databases/firestore-name/documents/collection-name/{docId}"

Log output

Prepare all required actions
Getting action download info
Download action repository 'google-github-actions/deploy-cloud-functions@main' (SHA:a2164ef2fe5dcc9c1f49bb5297133b5ba5920af8)
Run ./.github/actions/deploy-cloud-function
Run google-github-actions/deploy-cloud-functions@main
Created zip file from './' at '/tmp/cfsrc-535549cdea9103c31dc3d38f.zip'
Updating existing Cloud Functions deployment
Error: google-github-actions/deploy-cloud-functions failed with: failed to PATCH https://cloudfunctions.googleapis.com/v2/projects/project-id/locations/europe-west1/functions/function-name?updateMask=name,environment,buildConfig.runtime,buildConfig.entryPoint,buildConfig.source,buildConfig.serviceAccount,serviceConfig.allTrafficOnLatestRevision,serviceConfig.availableMemory,serviceConfig.environmentVariables,serviceConfig.ingressSettings,serviceConfig.serviceAccountEmail,serviceConfig.timeoutSeconds,eventTrigger.eventType,eventTrigger.eventFilters,eventTrigger.serviceAccountEmail,eventTrigger.retryPolicy: (400) {
  "error": {
    "code": 400,
    "message": "Validation failed for trigger projects/project-id/locations/europe-west1/triggers/function-name-686621: The request was invalid: invalid argument: event type google.cloud.firestore.document.v1.created not supported: attribute pattern not found within event type",
    "status": "INVALID_ARGUMENT"
  }
}

Additional information

No response

mudassarzahid avatar Oct 03 '24 19:10 mudassarzahid

hey @mudassarzahid I was able to make it work with the following code. To make it work, I've created the trigger at first deploying with the gcloud client, and starting comparing the result using describe.

          event_trigger_type: google.cloud.firestore.document.v1.written
          event_trigger_filters: |-
            database=some-database
            document=PATTERN:test_coll/{test_coll}

maxrinal avatar Oct 16 '24 09:10 maxrinal

Hi @mudassarzahid did @maxrinal's suggestion work?

sethvargo avatar Nov 02 '24 14:11 sethvargo

Hi @sethvargo @maxrinal , thanks for the help! It took some experimenting but it finally worked using google-github-actions/[email protected] and the document pattern filter. It doesn't work with google-github-actions/deploy-cloud-functions@main

mudassarzahid avatar Nov 14 '24 10:11 mudassarzahid

That doesn't make sense because at this time, all of those references point to the same Git SHA...

sethvargo avatar Nov 14 '24 14:11 sethvargo