WSO2 API Manager API Deployments - wso2

Is it possible to migrate all existing APIs deployed on one environment to another using using automated scripts?
Also, I need to update Production Endpoints of existing APIs while moving them to another environment.
Is this scenario possible via some automated script or we need to update endpoints manually in the new environment.
I am aware of the tool which does export/import of APIs deployed via curl command.
Thanks,
Abhishek

You can put a car file directly in the conf/deployment/server folder to deploy a new version of your API (and remove the old one) This can be scripted.

Related

Use terraform with Azure or AWS and with custom UI definition

I am looking for a way to create a custom UI definition, which I will use with Terraform to create resources and the terraform arguments/parameters will be provided from the UI. Basically the requirement is like
Creating a customized UI and pass parameters from there ex: Name for Web App Service
Deploy a Web App using terraform which requires name argument and it'll come from the UI input
I'm thinking if that is possible with Azure or AWS.
I'm thinking if that is possible with Azure or AWS.
Yes, its possible with Azure and AWS, or any other cloud provider. Obviously you have to develop a fully custom web application for that with backend running and managing your TF. There is no read-made tools for that.

AWS Amplify & Serverless-Stack

I am currently looking into AWS Amplify as well as I am reading Serverless Stack. My goal is to create a simple ToDo list app. Both "Getting started" / Documentations seem to have the same goal. However, AWS Amplify guide seems to be way easier from the setup.
And that's where I am confused. As far as I understand AWS Amplify also uses DynamoDB and gets data via GraphQL. But where is the difference between these two documentations?
Serverless Stack is a resource providing guidance on how to create serverless applications with AWS. It was created by a company called Anomaly Innovations.
AWS Amplify is an open source framework maintained by AWS which helps developers integrate their applications with AWS resources.
AWS Amplify is a very confusing service and consists of many components. I would categorize as follow.
AWS Amplify Console
AWS Amplify CLI
AWS SDK&Libraries to integrate to your mobile or web
AWS Appsync Transformer
AWS Amplify Console gives you the ability to easily to setup Continous Deployment for your Amplify project. Amplify Console use together with AWS Amplify CLI for you to manage different environments.
Let's say you want to start the Todo App. You start on your local using Amplify CLI and create API Gateway/Lambda/DynamoDB stacks.
Amplify CLI lets you create the whole stack easily and push it to AWS to deploy the whole stack. Then you can create a different environment based on the same stacks, let's say you want your dev environment, and QA environment and production environment.
Amplify CLI gives you all the commands necessary for you to achieve this, then if you want to auto-deploy the change to AWS when someone push the code to your Git repository, you can use the Amplify Console to set up exactly that.
Amplify Console also integrate with AWS Domain so, you can easily point your own domain to any of the environment.
On top of these, Amplify also provides, GraphQL Transformer, which you can easily define the GraphQL schema in Amplify format and it will transform and deploy to AWS Appsync. And there is a Mobile SDK which you can sync data between AppSync and you're mobile and provides some UIs as well.
We used one of our web projects and we liked it for Continues Deployment aspect of the Amplify, but we didn't like the AppSync(GraphQL) aspect of Amplify just b/c it was not easy to implement layered resolver.
Also, keep in mind that Amplify CLI/SDK/Transformer is under one project and it's still very fragile. You can take a look at the version history from https://www.npmjs.com/package/#aws-amplify/cli and you will see few version bump just in a single month. There were many obvious bugs we encounter, even on the AWS Console.
I haven't use the Serverless yet, but as long as I know, Serverless provides No1 and No2 of Amplify with greater stability.

AWS Amplify: Adding existing resources from other amplify env

Me and my partner are working on a web-project using AWS Amplify, where we have two different Amplify environments in which we are working. Is there a way for me to add the resources present in my partners environment to my environment? More specifically I would like to add/access the existing API gateway and Lambda functions my partner created in his environment to mine (have them show up as resources when using 'amplify status' in my environment). Is this possible?
This file aws-exports.js is the same meaning as .env
So everyone can have their own setting
Create a copy aws-exports.js and name it aws-exports.mysetting.js
When others run your project
cp aws-exports.mysetting.js aws-exports.js

How to develop and test AWS AppSync

We have decided that AppSync would be an excellent tool for our React Native app development. However, the problem is the scalability in development. Looking through Google entire day to find a way to do AppSync development offline so that anyone can freely create APIs and merge them, I realized that there is no such solution.
So how do large teams develop native apps using AppSync? Do you create AppSync app for every developer you have so that each person can change their own API freely then some how merge that back into production AppSync app?
I really wish there were a way to develop APIs locally and use git to merge them and upload the code directly to AppSync. As far as I know this is not possible but if you do know of a way or a different way, please let me know.
You can source control the entire AWS AppSync configuration including the endpoint, schema, resolvers, data sources, and any other AWS resources with AWS CloudFormation. Adrian's article walks thru the entire process. The ChatQL sample on GitHub contains a CloudFormation document and GraphQL schema that you can also use as a reference.
Once you've modeled AppSync and resources with CloudFormation, you can easily replicate your environment as many times as you want. Hence, you can either set up separate endpoints per developer or use a shared endpoint. I prefer the former since it provides isolation between developers.
You can also use the serverless framework to manage your AppSync endpoints with this plugin: https://github.com/sid88in/serverless-appsync-plugin
It also states, that it supports an offline mode for local development. Although, I didn't test it yet. But this can come in handy, when you want to pre-test your AppSync in a CI/CD environment.

How to deploy Webpack build to AWS from Bitbucket?

I have a React application that I am bundling using Webpack. The app relies on a MongoDB database and a Node/Express server to field the backend of the app (API requests, etc.).
I want to set up continuous integration/deployment (C.I/D.), but am not sure where to start. As my app's GIT repo is with Bitbucket and I have had experience with AWS in the past, it would be good to enable C.I/D. using these. How do I go about this?
You can use Jenkins to build your project from BitBucket.
Make use of AWS CodePipeline and AWS CodeDeploy for continuous delivery on AWS.
Jenkins gives you the flexibility to work with any source control system, and has plugins for AWS CodePipeline.
From AWS CodePipeline, you can configure a stage to call a Jenkins build job.
I've been using this system in production for quite some time now, without any issues.