{"id":89777,"date":"2021-02-02T20:08:09","date_gmt":"2021-02-02T20:08:09","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=89777"},"modified":"2021-02-02T20:08:09","modified_gmt":"2021-02-02T20:08:09","slug":"deploying-a-nodejs-application-from-github-to-aws-elastic-beanstalk-and-creating-a-ci-cd-aws-codepipeline","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/blogs\/deploying-a-nodejs-application-from-github-to-aws-elastic-beanstalk-and-creating-a-ci-cd-aws-codepipeline\/","title":{"rendered":"Deploying a NodeJS application from GitHub to AWS Elastic Beanstalk and creating a CI\/CD AWS CodePipeline."},"content":{"rendered":"<h2>Goals<\/h2>\n<p>In this article I will assist you to deploy a NodeJS application from GitHub into AWS Elastic Beanstalk and Building a CI\/CD pipeline.<\/p>\n<h2>What is Elastic Beanstalk ?<\/h2>\n<p>Using Elastic Beanstalk you will be able to deploy and manage applications within the AWS Cloud without having knowledge about the infrastructure that execute those applications. Elastic Beanstalk reduces management complexness without proscribing selection or control. You just transfer your application and Elastic Beanstalk mechanically handles the main points of capability provisioning, load equalization, scaling and application health observance.<\/p>\n<p>Elastic Beanstalk support applications developed in java, Go, PHP, NodeJS, Python and Ruby. Once you deploy your application, Elastic Beanstalk build the chosen supported platform version and provisions one or additional AWS resources like AmazonEC2 instances, to run your application. Elastic Beanstalk has a default security group, this security group acts as a firewall for the instances.<\/p>\n<p>Elastic Beanstalk console is used to interact with Elastic Beanstalk. You can also use AWS Command line interface or high-level designed interface.<\/p>\n<p>Once you create and deploy application, information about your application can be available on Elastic Beanstalk console.<\/p>\n<h2>Why Elastic Beanstalk ?<\/h2>\n<p>AWS Elastic Beanstalk makes it easy for developers to share their application across different devices within less amount of time.<\/p>\n<h2>Pre-Requisities<\/h2>\n<p>We will need pre-built sample of NodeJS application , you can download using this URL from GitHub <a href=\"https:\/\/github.com\/jspruance\/musician-app\">https:\/\/github.com\/jspruance\/musician-app<\/a>. You should also have GitHub account and AWS account , you can create a free AWS account from <a href=\"https:\/\/aws.amazon.com\/\">https:\/\/aws.amazon.com\/<\/a>.<\/p>\n<p>Click <a href=\"https:\/\/us-west-2.console.aws.amazon.com\/console\/home?region=us-west-2\">here<\/a>, to Create AWS Account and enter AWS User name and Password and it will open AWS Management Console page. Click on All services and choose AWS Elastic Beanstalk.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2268\" height=\"1136\" class=\"wp-image-89778\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-27.png\" \/><\/p>\n<p><strong>Figure 1: AWS Management console<\/strong><\/p>\n<p>When you click on Elastic Beanstalk , you will be directed to AWS Elastic Beanstalk Dashboard page and click \u201cCreate Application\u201d button and configure your NodeJS application.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2650\" height=\"870\" class=\"wp-image-89779\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-28.png\" \/><\/p>\n<p><strong>Figure 2: AWS Elastic Beanstalk Dashboard page<\/strong><\/p>\n<h2>To create an Application<\/h2>\n<p>You can use \u201cCreate Web app\u201d console wizard to create your sample application.<\/p>\n<ol>\n<li>Specify your Elastic Beanstalk application name information e.g: musician-sample<\/li>\n<li>Click on Platform drop-down and select your platform e.g: node.js. Platform branch and platform version will be auto populated.<\/li>\n<li>Select the Sample Application as application code and click on \u201cCreate Application \u201c button. It will take few minutes to launch your application.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2538\" height=\"866\" class=\"wp-image-89780\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-29.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2404\" height=\"1188\" class=\"wp-image-89781\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-30.png\" \/><\/p>\n<p><strong>Figure 3: Creating a Web App Information page<\/strong><\/p>\n<p>This will deploy your application in specific environment and tracks the progress and display events.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2544\" height=\"998\" class=\"wp-image-89782\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-31.png\" \/><\/p>\n<p>Once your Application is successfully launched , you will see Green check mark.<\/p>\n<p>The environment Overview page will display high level of environment information such as Environment Health, Application running version and Application platform version where application is running on.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2514\" height=\"942\" class=\"wp-image-89783\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-32.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2544\" height=\"834\" class=\"wp-image-89784\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-33.png\" \/><\/p>\n<p><strong>Figure 4: Environment overview page <\/strong><\/p>\n<p>On top of the Overview Page you will see the environment\u2019s URL below the environment name, click on this URL to get to the sample application\u2019s Congratulations Page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2352\" height=\"772\" class=\"wp-image-89785\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-34.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2712\" height=\"1016\" class=\"wp-image-89786\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-35.png\" \/><\/p>\n<p>Once your application is successfully deploy, we will set up a Continuous Integration and Continuous Delivery (CI\/CD) AWS pipeline using AWS Code Pipeline Service. AWS Code pipeline services helps you to Build, Tests and Deploy code when there is any code changes in your source code.<\/p>\n<p>We will learn how to create a simple pipeline that pulls code from GitHub repository and automatically deploy to AWS EC2 instances.<\/p>\n<p>Click on \u201cService\u201d dropdown and Select \u201cCodePipeline\u201d as shown in below picture OR you can also search \u201cCodePipeline\u201d in search bar.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2652\" height=\"1004\" class=\"wp-image-89787\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-36.png\" \/><\/p>\n<p><strong>Figure 5: AWS Service page<\/strong><\/p>\n<p>On CodePipeline Dashboard page choose \u201cCreate Pipeline\u201d. Click on Get started for the first time user.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2536\" height=\"812\" class=\"wp-image-89788\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-37.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2110\" height=\"1402\" class=\"wp-image-89789\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-38.png\" \/><\/p>\n<p><strong>Figure 6: Create pipeline page<\/strong><\/p>\n<h2>Choose Pipeline settings<\/h2>\n<p>AWS source resources you created must be in same region as your pipeline.<\/p>\n<ol>\n<li>In Pipeline Name enter name of the pipeline. e.g: \u201cmusician-pipeline\u201d. You cannot edit pipeline name once it is created.<\/li>\n<li>In Service Role default to \u2018New Service Role\u2019, it will help CodePipeline to create a new service role in IAM.<\/li>\n<li>In Role Name default to \u2018AWSCodePipelineServiceRole-Region-pipeline name\u2019 .Example,this is the service role created for a pipeline named AWSCodePipelineServiceRole-us-west-2-musician-pipeline.<\/li>\n<li>Click on Next Button as shown in figure.<\/li>\n<\/ol>\n<p><strong>Step 1: Add Source Stage<\/strong><\/p>\n<ol>\n<li>On Source page, under Source Provider ,choose GitHub(Version 1).<\/li>\n<li>If you have not created GitHub connection , click on \u201cConnect to GitHub\u201d button to grant permission to AWS Code pipeline to access your GitHub repository. This will help AWS Code Pipeline to upload your committed changes from GitHub to AWS Code Pipeline.<\/li>\n<li>GitHub connection page will appear as shown below.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1298\" class=\"wp-image-89790\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-39.png\" \/><\/p>\n<ol start=\"4\">\n<li>Click on \u201cAuthorize aws-codesuite\u201d . It will grant permission to connect to GitHub<\/li>\n<li>To connect to GitHub you need to click on \u201c Authorize AWS code-suite\u201d green button. Once you are successfully connected you will see the successful message in green box.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2038\" height=\"1310\" class=\"wp-image-89791\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-40.png\" \/><\/p>\n<p><strong>Figure 7: Add source stage<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2112\" height=\"1466\" class=\"wp-image-89792\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-41.png\" \/><\/p>\n<p><strong>Figure 7.1 : Add source stage<\/strong><\/p>\n<ol>\n<li>In repository choose the name of your repository where you committed your code ,example : BinnyJoshi\/musician<\/li>\n<li>In Branch select the branch name where you want your pipeline to detect source code. Example: Master<\/li>\n<li>Choose GitHub webhooks, this will allow to trigger pipeline whenever there is any code changes to repository.<\/li>\n<li>Click on NEXT button.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1462\" height=\"1046\" class=\"wp-image-89793\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-42.png\" \/><\/p>\n<p><strong>Step 2 : Add Build stage<\/strong><\/p>\n<p>1 ) Skip Build Stage, click on \u201cSkip\u201d button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2062\" height=\"956\" class=\"wp-image-89794\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-43.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1362\" height=\"398\" class=\"wp-image-89795\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-44.png\" \/><\/p>\n<p><strong>Figure 9: Add Build stage<\/strong><\/p>\n<p><strong>Step 3 : Add Deploy Stage details<\/strong><\/p>\n<ol>\n<li>In Deploy provider , choose AWS Elastic Beanstalk.<\/li>\n<li>In Region select the region where you have created your source code.<\/li>\n<li>In Application name enter or choose the name that you have already created on AWS Elastic Beanstalk console.<\/li>\n<li>In Environment name enter or choose the name that you already created on AWS Elastic Beanstalk console.<\/li>\n<li>Click \u201cNext\u201d button<\/li>\n<li>You will be directed to pipeline \u201cReview page\u201d.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2060\" height=\"1452\" class=\"wp-image-89796\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-45.png\" \/><\/p>\n<p><strong>Figure 10: Add deploy stage<\/strong><\/p>\n<p>Pipeline Review page details \u2013 as shown in below figure:<\/p>\n<ul>\n<li>Pipeline Settings,<\/li>\n<li>Add Source stage<\/li>\n<li>Add Build stage<\/li>\n<li>Add Deploy stage<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2050\" height=\"972\" class=\"wp-image-89797\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-46.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2038\" height=\"1376\" class=\"wp-image-89798\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-47.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2038\" height=\"746\" class=\"wp-image-89799\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-48.png\" \/><\/p>\n<p><strong>Figure 11: Review page<\/strong><\/p>\n<p>Click on \u201cCreate pipeline\u201d button.<\/p>\n<p>In the pipeline view, you will see the success message banner is displayed, and the build action continues until it is completed.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2514\" height=\"1030\" class=\"wp-image-89800\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-49.png\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1898\" height=\"1336\" class=\"wp-image-89801\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-50.png\" \/><\/p>\n<p><strong>Figure 12: Pipeline View page<\/strong><\/p>\n<h2>Delete Application<\/h2>\n<p>a) Login into AWS Account here and search for AWS Elastic Beanstalk service and open console.<\/p>\n<p>b) Select \u201cApplications\u201d .<\/p>\n<p>c) Find your application name and select that you want to delete .<\/p>\n<p>d) Select \u201cDelete Application\u201d from Action drop-down.<\/p>\n<p>e) Turn on Delete version and select \u201cDelete \u201c and \u201cDone\u201d.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2486\" height=\"872\" class=\"wp-image-89802\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-51.png\" \/><\/p>\n<h2>Delete Environment<\/h2>\n<ol>\n<li>Login into AWS Account <a href=\"https:\/\/us-west-2.console.aws.amazon.com\/elasticbeanstalk\/home?region=us-west-2#\/environments\">here<\/a> and search for AWS Elastic Beanstalk service and open console.<\/li>\n<li>In the Navigation pane on left choose \u201cEnvironments\u201d .<\/li>\n<li>In the Navigation pane, find your Environment name that you want to delete.<\/li>\n<li>Click on Environment \u201cAction\u201d drop-down and choose \u201cTerminate Environment\u201d button.<\/li>\n<li>Type Environment name and than choose Terminate .<\/li>\n<\/ol>\n<p><strong><img loading=\"lazy\" decoding=\"async\" width=\"2462\" height=\"950\" class=\"wp-image-89803\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-52.png\" \/><\/strong><\/p>\n<h2>How to start Pipeline Execution ?<\/h2>\n<p>When a developer makes changes to there code and pushed to a repository , the configured pipeline will detect changes and start execution. you can either trigger this pipeline execution manually by staring your pipeline or it can be automatically executed.<\/p>\n<h2>CI\/CD Process<\/h2>\n<p>Before we tend to get to automated deployment to Elastic Beanstalk, however, it\u2019s vital to refine the CI\/CD pipeline for the cloud surroundings. Elastic Beanstalk is meant from the bottom up to be sturdy and climbable, therefore you\u2019ve got to adapt your pipeline to totally leverage the benefits offered by the cloud platform. For starters, you\u2019ll be able to standardized the event and preparation surroundings. A pipeline run should not be allowed to switch the surroundings as a result of extra runs can face difficulties in adapting to the new changes. Instead, the runtime should keep your surroundings clean.<\/p>\n<p>Quality assurance and security checks got to be components of the method. For the pipeline to own shorter cycles whereas remaining reliable, these tasks got to be embedded into the progress. You\u2019ll be able to keep your cloud surroundings safe by integration security into development.<\/p>\n<p>Last however never least, confirm reviews and checks are performed before preparation. Scripts got to be checked against famed attacks and malicious scripts databases to form certain that dangerous line of code never get to the assembly surroundings.<\/p>\n<p>The last half is very important. You\u2019ll be able to assemble Elastic Beanstalk to expect bound flags or configuration entires before deploying a replacement update. As for integration the pipeline itself, the method is fairly simple with the tools that are currently on the market.<\/p>\n<h2>Benefits of CI\/CD pipeline<\/h2>\n<h3>Software Release Process can be Automated:<\/h3>\n<p>Continuous delivery provides a technique for your team to check-in the code that\u2019s technically designed, tested, and ready for unharness to production in order that your software delivery is resilient, rapid and secure.<\/p>\n<h3>Increased in the Productivity of Developers:<\/h3>\n<p>CI\/CD practices enhance your team\u2019s productivity by releasing developers from manual tasks, acting on advanced dependencies, and returning focus to delivering new options. Rather than desegregation their code with different components of the business and outlay time on a way to deploy this code to a platform, developers will specialize in coding logic that delivers the options you wish.<\/p>\n<h3>Improving Code Quality:<\/h3>\n<p>Continuous Delivery will assist you to discover and address bugs within the delivery method before they grow into bigger issues later. Your team will simply perform extra varieties of code tests as a result of the complete method has been machine-driven. With the discipline of a lot testing of the complete method that has been iterated quicker with immediate feedback on the impact of changes. This permits groups to drive quality code with high assurance of stability and security. Developers can understand through immediate feedback whether or not the new code works and whether or not any breaking changes or bugs were introduced. Mistakes caught earlier within the development phase are simplest to repair.<\/p>\n<h3>Faster Updates Delivery<\/h3>\n<p>CD helps your team deliver updates to customers quickly and regularly. Once CI\/CD is enforced, the velocity of the complete team, as well as the discharge of options and bugs fixes, is accumulated. Enterprises will respond quicker to plug changes, security challenges, client desires, and value pressures. For example, if new security feature is needed, your team will implement CI\/CD with automatic testing to introduce the fix quickly and dependably to production systems with high confidence. What accustomed take weeks and months will currently take days or perhaps hours.<\/p>\n<h3>View Progress:<\/h3>\n<p>You will be able to review current status of your running application, checks alerts, failed actions, read details regarding the supply revisions utilized in the newest pipeline execution in every stage, and manually rerun any pipeline.<\/p>\n<h3>View Pipeline History :<\/h3>\n<p>You will be able to read details regarding executions of a pipeline, together with begin and finish times, run period, and execution ID\u2019s.<\/p>\n<h2>Challenges of CI\/CD Pipeline:<\/h2>\n<h3>Security<\/h3>\n<p>The orchestration tool employed by the team ought to have an efficient security model that would offer higher visibility into the state of the complete CI\/CD pipeline for example , to spot the causes of check failure, the team would need to examine the results of the check section. However they ought to not lean permission to switch or disable the configuration of that check step.<\/p>\n<h3>Managing multiple CI\/CD pipeline<\/h3>\n<p>It would be troublesome to investigate metrics like turnouts, sure-fire execution, and cycle time if each pipeline ends at completely different stages within the delivery method. It\u2019s easier to manage an outsized set of CI\/CD pipelines if every one is predicated on a regular example. This may facilitate in purposeful comparative coverage and it will offer helpful feedback to boost alternative pipelines.<\/p>\n<h3>Limited dedicated Environments<\/h3>\n<p>Restricted shared check environment will increase the risks of a bottlenecks during CI\/CD pipeline implementation. You\u2019d have to be compelled to reserve associate degree surroundings to avoid multiple CI\/CD pipelines running aspect by aspect from making an attempt to deploy and check within the same surroundings. One among the leading causes of readying failures is misconfigured environments changed by previous groups or check runs.<\/p>\n<h2>Summary<\/h2>\n<p>Continuous Integration and Continuous Delivery together is the fast and effective process of getting your product in market as well as releasing new feature and bug fixes to keep your current customer happy.<\/p>\n<h2>References<\/h2>\n<p>https:\/\/aws.amazon.com\/<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Goals In this article I will assist you to deploy a NodeJS application from GitHub into AWS Elastic Beanstalk and Building a CI\/CD pipeline. What is Elastic Beanstalk ? Using Elastic Beanstalk you will be able to deploy and manage applications within the AWS Cloud without having knowledge about the infrastructure that execute those applications&#8230;.&hellip;<\/p>\n","protected":false},"author":333151,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[],"coauthors":[124821],"class_list":["post-89777","post","type-post","status-publish","format-standard","hentry","category-blogs"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/89777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/333151"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=89777"}],"version-history":[{"count":2,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/89777\/revisions"}],"predecessor-version":[{"id":89806,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/89777\/revisions\/89806"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=89777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=89777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=89777"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=89777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}