0

when i am running the gcloud functions deploy gcp_test --trigger-resource xxx-test-123 --trigger-event google.storage.object.finalize i am getting syntax error .

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function load error: Code in file index.js can't be loaded. Is there a syntax error in your code? Detailed stack trace: /user_code/index.js:1 (function (exports, require, module, __filename, __dirname) { # index.js ^

SyntaxError: Invalid or unexpected token at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:549:28) at Object.Module._extensions..js (module.js:586:10) at Module.load (module.js:494:32) at tryModuleLoad (module.js:453:12) at Function.Module._load (module.js:445:3) at Module.require (module.js:504:17) at require (internal/module.js:20:19) at getUserFunction (/var/tmp/worker/worker.js:388:24)

I am not sure why this error is appearing. I have installed npm module for @google-cloud/storage . Any help is appreciated .This function is suppose to enable stackdriver logging . reference: https://medium.com/google-cloud/encrypting-stackdriver-logging-sinks-using-customer-managed-encryption-keys-for-gcs-ccd0b59f0a3

    # index.js
            'use strict';
            const Buffer = require('safe-buffer').Buffer;
            // Imports the Google Cloud client library
            const Storage = require('@google-cloud/storage');
            // Creates a client
            const storage = new Storage();
            exports.moveFileToEncryptedStorage = (event, callback) => {
              const file = event.data;
              console.log(  Event ${event.eventId});
              console.log(  Event Type: ${event.eventType});
              console.log(  Bucket: ${file.bucket});
              console.log(  File: ${file.name});
              console.log(  Metageneration: ${file.metageneration});
              console.log(  Created: ${file.timeCreated});
              console.log(  Updated: ${file.updated});
            const newBucket = "xxx-test-123";
            const newBucketAndFileName = "gs://"+newBucket+"/"+file.name;
            console.log("Moving to..."+newBucketAndFileName);
            return storage
                  .bucket(file.bucket)
                  .file(file.name)
                  .move(newBucketAndFileName)
                  .then(() => {
            
                    console.log("content has been moved to "+newBucketAndFileName);
            })
                  .catch((err) => {
                    console.error("ERROR:"+err);
                  });
            }

1 Answer 1

1

Removing the following line # index.js does the trick. Keep in mind that all the console.log lines should be like the following: console.log(" Event ${event.eventId}");

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.