I am working on Restful Web application. I am maintaining different project for web client code and Google app engine server code.
When ever i made changes in the client code, i rebuilt the client code and places inside the war folder of server project through build scripts.
Here i dont want to place all files directly to war folder and i wanted to put them under folder called 'Publish' for better maintainence. How can do it?
Is there any better way to maintaining client code and Google app engine server code?
The structure also works well for Mobile application in future.
I am still new to this too, but there is versioning. If you change the version number in your project manifest file, it does not become the default (i.e., visible to your original public URL). It is public and accessible for you to test. When you are ready to "publish" just switch the new version to be the default. Use the Manage section of the Dashboard and set the Version to be the default when you are ready.
To test any of the earlier versions, you access through the Manage and click on the specific version. I don't know if the persistent storage is versioned with this same mechanism -- I can image problems if you have a huge DB.
Related
Excuse the naivety here, I'm new to GAE, and haven't been able to find much in the available literature / answers about the deployed filesystem's public status...
My question is quite simple:
Assuming a standard app.yaml config, are the files that get pushed to GAE with gcloud app deploy publicly inaccessible, unless exposed by (in the example of Node.js) an express endpoint?
I want to make sure sensitive data like key files (for reference in code) in our deployed bundle are not exposed, and that the local filesystem of a deployment is only accessible privately by the code itself.
Unless you work with the “static” files & dir directives no data should be made visible to outside users by Google.
Authenticated Admin users (youself) can see all files deployed to the server in the admin console unless you disable “code downloads” (which was available on legacy App Engine but seems to be removed now).
How do I move instances from one project to the next?
Problem: I have frontend production instance and backend production instance in 2 separate project. I would like to have my production instances (both frontend and backend) in the same project.
How do I move instances from one project to the next within Google App Engine?
You could have the 2 apps run as 2 separate services inside the same project. To do that you'd have to deploy the app from the project that will disappear as another service in the project that will remain. Some code changes might be required, depending on how the app is coded. Typically they're small changes, though.
IMHO it would be simpler to keep the project currently hosting the frontend and move the backend over from the project to be retired. The reason is that the frontend is typically better fitted to play the default service role and it is already setup as such, changes should be smaller. Performing the move in the other direction would mean both services would need to changed.
You might need a dispatch.yaml file to route incoming packets, unless the URL mappings of the services are really well done. Not a big deal.
If you're using custom domains, with a bit of care it is possible to make the move (almost) transparent - by having the new service up and running before retiring the old project. DNS propagation time becomes rather irrelevant - both old and new services being simultaneously ready during the transition.
Note: technically you wouldn't be "moving" instances, you'd just stop the ones serving the project to be retired and start new ones for the service added to the project to be kept.
More or less related:
Change runtime from Python to Go in App Engine standard environment
Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure?
I have a WP website running on Azure app service, I want to clone it because my website is online but I want to experiment on it (So I want to clone it, leave one online and experiment with the clone), There is a service to clone my app inside azure but it is paid, it is there other way to clone the content (plugins and configuration) of my wp app service to put it in another wp app service?
There are two different options you can use to copy your site;
1) Copy the files and database onto the new webspace
This method is good if you have access to all your files and the database for your site. You simply copy the files over to the other webspace and export the database. This link will give you more information on this method - https://www.wpexplorer.com/migrating-wordpress-website/
2) Using a plugin to do it for you
There are several plugins you can use that will do the above for you and will automatically create a backup of your site including the database so that you don't have to do anything. Might I suggest this plugin, I've used it myself so I know it's reliable and should do the trick - https://en-gb.wordpress.org/plugins/all-in-one-wp-migration/
It also has a feature that allows you to change any old URLs to the new URL which will save you a bit of time.
I hope this provides enough information for you to successfully transfer your site over.
I am new in react+redux. Recently I got a task and have no idea.
Is it possible not to use any web server to run my react+redux project?
After building my project, I got a folder of static files.
Is it possible to place those in CDN not having web server eg. nodejs or tomcat?
thanks.
If you do not need save data on server - you do not need it. Take a look on GitHub pages for sample.
Of course you can but you need an HTML page to be parsed by the browser, in which you would include the necessary SCRIPT tags to load and run your React app.
I recommend you give Surge (https://surge.sh/) a try, it's free right now and you can easily host your React project with ease (including the .html files and every asset generated by your build). You can even create a npm script that builds and then deploys from the CLI with a single surge call. Works like a charm!
You can even use a custom domain name, or choose a specific surge subdomain if it's available, like gibbok.surge.sh. ;)
No it is not possible without a webserver.
If your app is a static website for example, with no server functionalities (like nodeJs) you could host your builded application (static files) on any simple http server included github pages without setup a nodeJs server.
If you app has some dynamic functionalities, example it use nodeJs to work with server file system or db, you need a node server.
In both cases a http server is necessary to delivery JS/HTML and assets to the browser when requested.
On a CDN you could store some static files, which can be used in your project, which is great if you are building a js library.
In case you do not want to care about the http server you could use any simple hosting solution, example GitHub page, or any hosting which allow running a website with some static files.
I started a project with Google app engine, when I use eclipse to start, it automatically generate 4 package for me. My app package name is
com.appspot.xxxx
and it auto generate these three for me:
com.appspot.xxxx.client
com.appspot.xxxx.server
com.appspot.xxxx.shared
What does these three package convention means? Thank you.
First of all, to be clear, these packages are being created because you've chosen to create a Web Application that includes GWT code.
GWT compiles the code in your client and shared packages (by convention) into JavaScript which will run on your user's browser.
The GWT client-side code will communicate to your server, whose code will go in the server package. The server-side code can (again, by convention) use code in the shared package, so logic like validation can be used in both client and server code.
This is not an artifact of the app being an App Engine app, but rather of it being a GWT app.
When you register the application, it will be hosted at http://xxxx.appspot.com. You choose the value for xxxx, e.g. your application's name.