{"id":15215,"date":"2024-04-06T10:50:59","date_gmt":"2024-04-06T07:20:59","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15215"},"modified":"2024-04-06T11:59:48","modified_gmt":"2024-04-06T08:29:48","slug":"deploy-webapp-apprunner","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/deploy-webapp-apprunner\/","title":{"rendered":"Run a web application using AWS App Runner"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Introduction<\/h2>\n<p>In this guide, you will learn how to deploy a containerized application with AWS App Runner. AWS App Runner is a fully managed service that enables developers to quickly deploy containerized web applications and APIs at scale without requiring prior infrastructure experience. Start with source code or a container image. App Runner automatically builds and deploys the web application and load balances traffic with encryption. App Runner also automatically scales up or down to meet your traffic needs.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">Prerequisites<\/h5>\n<ul>\n<li>An AWS account<\/li>\n<li>Please make sure you have configured your AWS CDK correctly.<\/li>\n<\/ul>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-%d8%a7%d9%88%d9%84-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-cdk-%d8%b1%d8%a7-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%da%a9%d9%86%db%8c%d8%af\">Step 1 \u2013 Create the CDK application<\/h2>\n<p>First, make sure you have downloaded and extracted the sample code for this guide referenced on the introduction page (instead of The address of the sample code as a reference, and Replace with the corresponding file name):<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>wget &lt;EXAMPLE_CODE_URL&gt;\r\nunzip &lt;DOWNLOADED_FILE_NAME&gt;\r\ncd getting-started-containers-app-runner-main<\/code><\/pre>\n<\/div>\n<p>Next, make sure you have CDK v2 installed.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cdk --version<\/code><\/pre>\n<\/div>\n<p>Now we create the CDK skeleton application using TypeScript as our language of choice:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mkdir infra\r\ncd infra\r\ncdk init app --language typescript<\/code><\/pre>\n<\/div>\n<p>This will have the following output:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Applying project template app for typescript\r\n# Welcome to your CDK TypeScript project!\r\nThis is a blank project for TypeScript development with CDK.\r\nThe `cdk.json` file tells the CDK Toolkit how to execute your app.\r\n## Useful commands\r\n* `npm run build` compile typescript to js\r\n* `npm run watch` watch for changes and compile\r\n* `npm run test` perform the jest unit tests\r\n* `cdk deploy` deploy this stack to your default AWS account\/region\r\n* `cdk diff` compare deployed stack with current state\r\n* `cdk synth` emits the synthesized CloudFormation template\r\nExecuting npm install...\r\n\u2705 All done!<\/code><\/pre>\n<\/div>\n<h5 id=\"%da%a9%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d9%be%d8%b4%d8%aa%d9%87-%d9%85%d9%86%d8%a7%d8%a8%d8%b9-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%da%a9%d9%86%db%8c%d8%af\">Generate the code for the resource stack<\/h5>\n<p>Go to the lib\/infra-stack.ts file. This is where you write the code for the resource stack you want to create. A resource stack is a collection of cloud infrastructure resources (in this particular case, all AWS resources) that are provisioned in a specific account. The account\/region where these resources are provisioned can be configured in the stack.<\/p>\n<h5 id=\"%d8%af%d8%b1-%d8%a7%db%8c%d9%86-%d8%af%d8%b3%d8%aa%d9%87%d8%8c-%d8%b4%d9%85%d8%a7-%d9%85%db%8c-%d8%ae%d9%88%d8%a7%d9%87%db%8c%d8%af-%d9%85%d9%86%d8%a7%d8%a8%d8%b9-%d8%b2%db%8c%d8%b1-%d8%b1%d8%a7\">In this category, you will want to create the following resources:<\/h5>\n<ul>\n<li>App Runner Service: This is how your container runs.<\/li>\n<li>Output: This displays the URL of your service.<\/li>\n<\/ul>\n<h5 id=\"%d8%b3%d8%b1%d9%88%db%8c%d8%b3-%da%a9%d8%a7%d9%86%d8%aa%db%8c%d9%86%d8%b1-%d8%b1%d8%a7-%d9%85%d8%b3%d8%aa%d9%82%d8%b1-%da%a9%d9%86%db%8c%d8%af\">Deploy the container service<\/h5>\n<p>To deploy your service, you must first import the correct modules (instead of In the code snippet below, replace your CDK version that you previously retrieved.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>npm i @aws-cdk\/aws-apprunner-alpha@&lt;CDK_VERSION&gt;-alpha.0<\/code><\/pre>\n<\/div>\n<p>Then you edit the lib\/infra-stack.ts file to add the dependencies at the top of the file:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import apprunner = require('@aws-cdk\/aws-apprunner-alpha'); \/\/ Allows working with App Runner resources\r\nimport { DockerImageAsset } from 'aws-cdk-lib\/aws-ecr-assets'; \/\/ Allows building the docker image and uploading to ECR\r\nimport * as path from \"path\"; \/\/ Helper for working with file paths<\/code><\/pre>\n<\/div>\n<p>These modules provide access to all the components required to deploy a web application.<\/p>\n<p>Next, you need to specify which container to use by creating an App Runner service. For this tutorial, we will build the container image provided with the sample app into SampleApp and have the CDK handle the container build, upload, and deployment for us. We will also create an empty IAM role to associate with the service for future tutorials. To create the service and IAM role, add the following code:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code> \/\/ The code that defines your stack goes here\r\n\/\/If you are running on a Mac using the new M1 chip, please change `..\/SampleApp` to `..\/..\/SampleApp`.\r\nconst imageAsset = new DockerImageAsset(this, 'ImageAssets', {\r\ndirectory: path.join(__dirname, '..\/SampleApp'),\r\n});\r\nconst service = new apprunner.Service(this, 'Service', {\r\nsource: apprunner.Source.fromAsset({\r\nimageConfiguration: { port: 80 },\r\nasset: imageAsset\r\n})\r\n});\r\nnew cdk.CfnOutput(this, \"apprunner-url\", {\r\nexportName: \"apprunner-url\",\r\nvalue: service.serviceUrl,\r\ndescription: \"URL to access service\"\r\n});<\/code><\/pre>\n<\/div>\n<p>In the code above, you created a service with App Runner to run a container that CDK builds from a Dockerfile in the SampleApp directory. Before you can use the CDK, you need to bootstrap it \u2013 this creates the necessary infrastructure for the CDK to manage the infrastructure in your account:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>cdk bootstrap<\/code><\/pre>\n<\/div>\n<p>You should see output similar to:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\u23f3 Bootstrapping environment aws:\/\/0123456789012\/&lt;region&gt;... \r\n\u2705 Environment aws:\/\/0123456789012\/&lt;region&gt; bootstrapped<\/code><\/pre>\n<\/div>\n<p>After bootstrapping is complete, you run the CDK to deploy all the required infrastructure:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>cdk deploy<\/code><\/pre>\n<\/div>\n<p>You should see output similar to the following:<\/p>\n<p><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"2340\"  height=\"724\"  class=\"aligncenter wp-image-15217 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 2340px) 100vw, 2340px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3.png 2340w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-300x93.png 300w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-1024x317.png 1024w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-768x238.png 768w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-1536x475.png 1536w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-2048x634.png 2048w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-110x34.png 110w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-200x62.png 200w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-380x118.png 380w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-255x79.png 255w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-550x170.png 550w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-800x248.png 800w, https:\/\/cdn.itpiran.net\/2024\/04\/06102802\/1-3-1160x359.png 1160w\" ><br \/>\nThe CDK will prompt you before creating the infrastructure because it will create the infrastructure that will change the security configuration \u2013 in this case, by creating IAM roles and security groups. To deploy, press y and then Enter. The CDK will now deploy all the infrastructure you defined. It will take a few minutes to complete. Once it is running, you will see updates like this:<\/p>\n<p><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1710\"  height=\"328\"  class=\"aligncenter wp-image-15218 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1710px) 100vw, 1710px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3.png 1710w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-300x58.png 300w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-1024x196.png 1024w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-768x147.png 768w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-1536x295.png 1536w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-110x21.png 110w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-200x38.png 200w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-380x73.png 380w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-255x49.png 255w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-550x105.png 550w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-800x153.png 800w, https:\/\/cdn.itpiran.net\/2024\/04\/06102915\/2-3-1160x223.png 1160w\" ><br \/>\nOnce completed, you will see the output with a link to the public URL to access your service, as shown below:<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-%d8%af%d9%88%d9%85-%d9%be%d8%a7%da%a9%d8%b3%d8%a7%d8%b2%db%8c-%d9%85%d9%86%d8%a7%d8%a8%d8%b9\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1704\"  height=\"624\"  class=\"aligncenter wp-image-15219 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1704px) 100vw, 1704px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3.png 1704w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-300x110.png 300w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-1024x375.png 1024w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-768x281.png 768w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-1536x562.png 1536w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-110x40.png 110w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-200x73.png 200w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-380x139.png 380w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-255x93.png 255w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-550x201.png 550w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-800x293.png 800w, https:\/\/cdn.itpiran.net\/2024\/04\/06103050\/3-3-1160x425.png 1160w\" ><br \/>\nStep Two \u2013 Clean Up Resources<\/h2>\n<h5 id=\"%d8%b2%db%8c%d8%b1%d8%b3%d8%a7%d8%ae%d8%aa-%d9%85%d8%a8%d8%aa%d9%86%db%8c-%d8%a8%d8%b1-clouad-%d8%b1%d8%a7-%d8%ad%d8%b0%d9%81-%da%a9%d9%86%db%8c%d8%af\">Eliminate cloud-based infrastructure<\/h5>\n<p>AWS CDK makes it easy to remove your infrastructure with just one command. To remove all infrastructure you&#039;ve created, use the cdk kill command \u2014 this will only remove the infrastructure created in this tutorial.<\/p>\n<p>You will see a confirmation:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cdk destroy \r\nAre you sure you want to delete: InfraStack (y\/n)? <\/code><\/pre>\n<\/div>\n<p>After pressing y and Enter, CDK will start removing all infrastructure and providing updates. Once completed, you will see the following:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Are you sure you want to delete: InfraStack (y\/n)? y\r\nInfraStack: destroying...\r\n\u2705 InfraStack: destroyed<\/code><\/pre>\n<\/div>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Result<\/h2>\n<p>You have completed the Deploy a Web App Using AWS App Runner tutorial.<\/p>","protected":false},"excerpt":{"rendered":"Introduction In this guide, you will learn how to deploy a containerized application with AWS App Runner. AWS App\u2026","protected":false},"author":1,"featured_media":15221,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[220,193,363],"tags":[412,219,366],"class_list":{"0":"post-15215","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-amazon","8":"category-tutorials","9":"category-programming","10":"tag-application","11":"tag-aws","12":"tag-366"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/deploy-webapp-apprunner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0628\u0627 AWS App Runner \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a. AWS App&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/deploy-webapp-apprunner\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-06T07:20:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-06T08:29:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/04\/06105000\/AWS-Deploy.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\",\"datePublished\":\"2024-04-06T07:20:59+00:00\",\"dateModified\":\"2024-04-06T08:29:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/\"},\"wordCount\":86,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/06105000\\\/AWS-Deploy.jpg\",\"keywords\":[\"application\",\"AWS\",\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\"],\"articleSection\":[\"\u0622\u0645\u0627\u0632\u0648\u0646\",\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/\",\"name\":\"\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/06105000\\\/AWS-Deploy.jpg\",\"datePublished\":\"2024-04-06T07:20:59+00:00\",\"dateModified\":\"2024-04-06T08:29:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/06105000\\\/AWS-Deploy.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/06105000\\\/AWS-Deploy.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/deploy-webapp-apprunner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/en\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Run a web application using AWS App Runner - ITPiran Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/deploy-webapp-apprunner\/","og_locale":"en_US","og_type":"article","og_title":"\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0628\u0627 AWS App Runner \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a. AWS App&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/deploy-webapp-apprunner\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-04-06T07:20:59+00:00","article_modified_time":"2024-04-06T08:29:48+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/04\/06105000\/AWS-Deploy.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f","datePublished":"2024-04-06T07:20:59+00:00","dateModified":"2024-04-06T08:29:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/"},"wordCount":86,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/04\/06105000\/AWS-Deploy.jpg","keywords":["application","AWS","\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc"],"articleSection":["\u0622\u0645\u0627\u0632\u0648\u0646","\u0622\u0645\u0648\u0632\u0634\u06cc","\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/","name":"Run a web application using AWS App Runner - ITPiran Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/04\/06105000\/AWS-Deploy.jpg","datePublished":"2024-04-06T07:20:59+00:00","dateModified":"2024-04-06T08:29:48+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/04\/06105000\/AWS-Deploy.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/04\/06105000\/AWS-Deploy.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/deploy-webapp-apprunner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS App Runner \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"Iranian Sustainable Trade News and Articles","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Sustainable Iranian Business Blog","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"admin","url":"https:\/\/www.itpiran.net\/blog\/en\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts\/15215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/comments?post=15215"}],"version-history":[{"count":2,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts\/15215\/revisions"}],"predecessor-version":[{"id":15220,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts\/15215\/revisions\/15220"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/media\/15221"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/media?parent=15215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/categories?post=15215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/tags?post=15215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}