GoogleCloudPlatform / GoogleCloudPlatform/functions-framework-nodejs

using gcloud functions deploy --set-secrets=/workspace will trigger an error

Ouverte
#696 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
docs P3
Langage dominant
TypeScript
Étoiles
1.4k
Forks
181
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

## Expected

It is possible to deploy a secret file into `/workspace` within a cloud function environment.

## Observed

After function is deployed, the step that tests it fails, and it prints this error:

```
ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function failed on loading user code. This is likely due to a bug in the user code. Error message: Provided code location '/workspace' is not a loadable module.
```

I've googled "Error message: Provided code location '/workspace' is not a loadable module." but not much luck yet finding where this comes from.

## Steps to reproduce

Assuming you have a gen 1 function e.g. named `my-existing-gen1-cloud-function` (I'm not sure if this works on Gen 2; I haven't yet tried it):

```
gcloud functions deploy my-existing-gen1-cloud-function --entry-point=webhook --set-secrets=/workspace/.env-file=Secrets-Env-File:latest
```

Note there is a warning printed: "Ensure that the runtime service account...has access to the secrets." (which I've done)

## Logs

```
For Cloud Build Logs, visit: https://console.cloud.google.com/cloud-build/builds;region=us-central1/(redacted)?project=(redacted)
Deploying function (may take a while - up to 2 minutes)...⠏
Deploying function (may take a while - up to 2 minutes)...failed.

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function failed on loading user code. This is likely due to a bug in the user code. Error message: Provided code location '/workspace' is not a loadable module.

Did you specify the correct location for the module defining your function?

Could not load the function, shutting down.. Please visit https://cloud.google.com/functions/docs/troubleshooting for in-depth troubleshooting documentation.
```

## Workarounds

It seems possible to deploy the secret file to another directory, such as `/tmp` or `/etc`.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par reproduire la commande exacte de déploiement Gen 1 avec le point d’entrée `webhook` et un secret monté dans `/workspace`, puis comparez-la aux solutions de contournement documentées pour `/tmp` ou `/etc`. Étudiez pourquoi la fonction déployée traite `/workspace` comme l’emplacement de son code ; le travail est considéré comme terminé lorsque le secret y est monté sans provoquer l’erreur de chargement de la fonction.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
google-cloud, nodejs
Domaine
backend, cloud
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.