AWSStatic-verified

A Service where a Push Is Not a Deploy

auto_deployments takes every push to the image tag straight to production with no review, which quietly makes the deployment gate "who can push". Off by default, egress routed through your VPC, and the pull role kept separate from the run role.

terraformAWSaws

Compare Managed App Platform across clouds →

aws-app-runnervizier v1.2.0

Verification

Static-verified

Passed: validated and lint-clean (provider-schema-validated for AWS/Azure/GCP; Terraform-language lint elsewhere).

Conformance

  • Static validation (fmt · validate · tflint)
  • Security scan clean (Checkov)
  • Plan tests (mocked: validation rules · outputs)

Provenance

  • SHA-256 checksum
  • Signature (pending)

Functional

  • Live test pending (no cloud run yet)

Last verified 2026-09-13 · how we verify

Use it from the registry

terraform · opentofu
module "app_runner" {
  source  = "www.iac-bazaar.com/iac-bazaar/aws-app-runner/aws"
  version = "1.0.0"
}

Needs a registry token from /account/tokens. The module itself is free; the account is what identifies you. Full setup: registry docs.

Cite it in your README

badge · attribution

Paste this beside the module in the repository that uses it. The badge is rendered from this artifact's verification record, so it reads static-verified because the record says so, and the link lands on this page.

README.md, GitLab, Gitea
[![IaC Bazaar: static-verified](https://www.iac-bazaar.com/api/artifacts/aws-app-runner/badge)](https://www.iac-bazaar.com/catalog/aws-app-runner?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

Terraform module 1.0.0, static-verified on IaC Bazaar: [A Service where a Push Is Not a Deploy](https://www.iac-bazaar.com/catalog/aws-app-runner?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

```hcl
module "app_runner" {
  source  = "www.iac-bazaar.com/iac-bazaar/aws-app-runner/aws"
  version = "1.0.0"
}
```

Preview:IaC Bazaar: static-verified

Inputs & outputs

Create a free account to read this module's contract

The declared contract - every input name, type, default and description, plus every output - is shown to signed-in accounts, not to anonymous visitors.

A free account sees the contract of every module in the catalogue. There is no subscription and nothing to buy - the modules are free to download, and they run under Vizier.

Documentation

aws-app-runner

An App Runner service from a container image, with the two settings that decide who can deploy it and where it can reach. Works with Terraform and OpenTofu (>= 1.6), AWS provider >= 6.0, < 7.0.

auto_deployments_enabled turns every push into a deploy. Push a new image to the tag this service watches and App Runner takes it to production - no review, no approval, no pipeline stage in between. It is genuinely convenient, and it means the deployment gate is now "who can push to this ECR repository", which is usually a wider set of people and machines than "who can deploy". Off here, and deploys_on_push is an output so a policy test can assert on it.

Egress defaults to AWS's network, not yours. Without a VPC connector the service reaches the internet directly and cannot reach anything private - so a database in your VPC is unreachable - while a compromised dependency has an unfiltered path out. The connector fixes both at once, and the module creates one when you pass vpc.

Two roles, deliberately separate. access_role_arn is what App Runner assumes to pull the image; instance_role_arn is what the code runs as. Conflating them gives the running container permission to pull from every repository the puller can reach.

runtime_environment_variables are readable through DescribeService and in the console, so a precondition refuses any name matching password, secret, token, api_key, private_key or credential. environment_secrets takes an ARN resolved at start instead.

Smaller things: the health check defaults to HTTP with a real path, because a TCP check passes as soon as something is listening - including an application that cannot reach its database; and the example pins an image digest rather than a tag, since a tag can be moved under you.

Verification

Static validation runs tofu fmt, init, validate, tflint and checkov. This module has not yet had a live test, so it is published as statically validated with its live test pending and does not carry the live-tested mark.

Usage code & full reference need an account

The complete copy-paste usage, the full input/output reference, and operational notes are free with an account - shown here and bundled in the download. Sign in and this section fills in.

  • Usage

Related modules

Static validatedLive test pending

aws-amplify-app

Every branch build is served at a public amplifyapp.com URL, and basic auth, the switch that puts a password on it, is off; auto branch creation builds every branch anyone pushes; the repository token lands in state; and environment variables are plaintext. Basic auth on every non-production branch (public by name), auto creation off, exactly one production branch, the custom domain attached.

View module
Live-tested

aws-ecs-fargate-service

Full Fargate stack: cluster, task definition, service with ALB integration, autoscaling, and Cloud Map discovery.

View module
Live-tested

aws-lambda

Lambda with execution role, log group, triggers, aliases, and zip/container packaging handled.

View module
Live-tested

aws-step-functions

A Step Functions state machine (STANDARD or EXPRESS) with a least-privilege execution role, a managed CloudWatch log group, X-Ray tracing, and encryption at rest - working out of the box from a single name.

View module
Static validatedLive test pending

huawei-app-platform

A CAE environment, application and components. deploy_after_create is off in the API, so a component exists with a source, a runtime and a replica count and serves nothing; it is on here. The runtime list still offers Java8, Nodejs8 and Php7, which the module names and asks about, and 500m of CPU cannot take 4Gi of memory.

View module
Live-tested

azure-app-service

App Service plan + Linux web app with deployment slots, custom domain + managed TLS, VNet integration and autoscale.

View module