How does one access memcache from the nodejs standard environment?
The documentation apparently makes no reference to the App Engine memcache being available to the Node.JS standard environment, at least not at this time:
there is no Node.JS language tab in the Memcache Overview page(s)
there is no Caching Application Data section (under which the memcache-related docs exist for the other languages) under How-to Guides in the left-side navigation bar for Google App Engine Node.js Standard Environment Documentation
But there may be an alternative. From APIs & Reference:
Which leads to Node.js Packages, where I can see:
Which leads to Cloud Redis: Node.js Client.
This is inline with the suggestions from the Memcache section of the Migrating Services from the Standard Environment to the Flexible Environment guides, the flexible environment having the same problem (except clearly documented):
The Memcache service is currently not available for the App Engine
flexible environment
Related
error while loading shared libraries: libnss3.so cannot open shared object file
I want to deploy my puppeteer app on google app engine since it says their node.js environment supports the puppeteer however
I get still get this error.
What do I need to do?
Puppeteer requires custom libraries, so you need to make sure you are using the custom environment in your app.yaml:
runtime: custom env: flex
You can find a similar issue in this Github thread.
You also need to check the App Engine documentation for your language that describes dependencies specification to make sure your steps are aligned with the guidelines.
If you are using the App Engine Standard environment, the Node.js runtime of the App Engine standard environment comes with all system packages needed to run Headless Chrome.
To use puppeteer, simply list the module as a dependency in your package.json and deploy to Google App Engine. Read more about using puppeteer on App Engine by following the official tutorial.
I'm working on a Node.js application hosted on Google Cloud, using Google Application Engine. The app has a few settings like the following:
const TASK_BATCH_SIZE = 50;
Currently, every time we need to change some settings like that one to do some tests we need to re-deploy the app, and that happens very often. We are looking for some alternatives inside the Google Cloud ecosystem that allows us to configure our running services without needing to re-deploy.
One of the things we found in the docs was Runtime Configurator, which still seems to be a beta product. For Node.js specifically nodejs-rcloadenv is the only client library we found, but doesn't seem to support the Watcher / Waiter concepts described in the Runtime Configurator docs or any other way to subscribe to variable changes in a configuration resource.
Is Runtime Configurator the solution to our problem? Are there any other services inside the Google Cloud ecosystem, or any other library for Node.js that could help us with this?
If you want to update or to make some settings changes in the service, you need to re-delpoy the service.
You can't use Runtime Configurator as it's for Compute Engine and not for App Engine.
You can create a feature request on Google's Public Issue Tracker for your issue ( to update configurations without re-deploying the service).
How does one access memcache from the nodejs standard environment?
The documentation apparently makes no reference to the App Engine memcache being available to the Node.JS standard environment, at least not at this time:
there is no Node.JS language tab in the Memcache Overview page(s)
there is no Caching Application Data section (under which the memcache-related docs exist for the other languages) under How-to Guides in the left-side navigation bar for Google App Engine Node.js Standard Environment Documentation
But there may be an alternative. From APIs & Reference:
Which leads to Node.js Packages, where I can see:
Which leads to Cloud Redis: Node.js Client.
This is inline with the suggestions from the Memcache section of the Migrating Services from the Standard Environment to the Flexible Environment guides, the flexible environment having the same problem (except clearly documented):
The Memcache service is currently not available for the App Engine
flexible environment
After installing Google Plugin for Eclipse, there are options to create three different types of projects
Google App Engine Flexible Java Project
Google App Engine Standard Java Project
Google Dataflow Java Project
What is the difference between these three?
App Engine allows you to deploy application with minimum infrastructure related configuration. Standard is quicker in both deploying and scaling your application, but has a limited choice of languages and libraries to use. Flexible manages docker containers so it can run almost anything and has more powerful machines to chose from, same that Compute Engine has, but it takes longer to deploy and is in general more expensive.
Lightweight generic code that should be always available should run on Standard. A batch job that is processed once every day and requires an expensive setup and third party libraries would better run on Flex.
More on that here
Google App Engine Dataflow Java Project
It's not an App Engine, it says:
Google App Engine Dataflow Java Project
It's a service directed specifically at batch jobs and streaming. More on it here.
Until december 2016, I was able to deploy node applications to Google App Engine standard environment with an app.yaml looking like this:
runtime: nodejs
vm: true
api_version: 1
manual_scaling:
instances: 1
Now, when I do this to deploy to a new project, I get this error message:
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Deployments to App Engine
Flexible require 'env: flex' in app.yaml. The 'vm:true' setting has
been deprecated.
But I'm still able to deploy with this configuration for existing projects.
Has something changed recently in Google App Engine for Node.js ? (I don't know when reading the error message if standard environment is deprecated, or if for some reason it considers I chose to deploy to a flexible environment, and so I can't use vm:true because this option is deprecated for flexible environments).
The vm: true indicates you were actually deploying to the flexible environment (an earlier version). The standard environment never supported node.js apps, see https://cloud.google.com/appengine/docs.
Yes, there was a change in the flexible environment (all languages, not only node.js). See Upgrading to the Latest App Engine Flexible Environment Beta Release. From there, explaining why your existing apps still work:
Applications created with vm:true
All applications created in the vm:true environment will continue to
work for at least 6 months after the App Engine flexible environment
becomes generally available. At that point, all customers need to
switch to the env:flex environment.
UPDATE:
Node.JS is currently available in the standard environment as well, see:
Now, you can deploy your Node.js app to App Engine standard environment
Google App Engine Node.js Standard Environment Documentation