Allows creation and management of an App Engine application.
resource "google_project" "my_project" {
name = "My Project"
project_id = "your-project-id"
org_id = "1234567"
}
resource "google_app_engine_application" "app" {
project = google_project.my_project.project_id
location_id = "us-central"
}
The following arguments are supported:
project
- (Required) The project ID to create the application under.
~>NOTE: GCP only accepts project ID, not project number. If you are using number,
you may get a "Permission denied" error.
location_id
- (Required) The location
to serve the app from.
auth_domain
- (Optional) The domain to authenticate users with when using App Engine's User API.
database_type
- (Optional) The type of the Cloud Firestore or Cloud Datastore database associated with this application.
Can be CLOUD_FIRESTORE
or CLOUD_DATASTORE_COMPATIBILITY
for new
instances. To support old instances, the value CLOUD_DATASTORE
is accepted by the provider, but will be rejected by the API.
To create a Cloud Firestore database without creating an App Engine application, use the
google_firestore_database
resource instead.
serving_status
- (Optional) The serving status of the app.
feature_settings
- (Optional) A block of optional settings to configure specific App Engine features:
split_health_checks
- (Required) Set to false to use the legacy health check instead of the readiness
and liveness checks.iap
- (Optional) Settings for enabling Cloud Identity Aware Proxy
oauth2_client_id
- (Required) OAuth2 client ID to use for the authentication flow.
oauth2_client_secret
- (Required) OAuth2 client secret to use for the authentication flow.
The SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.
In addition to the arguments listed above, the following computed attributes are exported:
id
- an identifier for the resource with format {{project}}
name
- Unique name of the app, usually apps/{PROJECT_ID}
app_id
- Identifier of the app, usually {PROJECT_ID}
url_dispatch_rule
- A list of dispatch rule blocks. Each block has a domain
, path
, and service
field.
code_bucket
- The GCS bucket code is being stored in for this app.
default_hostname
- The default hostname for this app.
default_bucket
- The GCS bucket content is being stored in for this app.
gcr_domain
- The GCR domain used for storing managed Docker images for this app.
iap
- Settings for enabling Cloud Identity Aware Proxy
enabled
- (Optional) Whether the serving infrastructure will authenticate and authorize all incoming requests.
(default is false)
oauth2_client_secret_sha256
- Hex-encoded SHA-256 hash of the client secret.
This resource provides the following Timeouts configuration options: configuration options:
create
- Default is 4 minutes.update
- Default is 4 minutes.Applications can be imported using the ID of the project the application belongs to, e.g.
{{project-id}}
In Terraform v1.5.0 and later, use an import
block to import an Application using one of the formats above. For example:
import {
id = "{{project-id}}"
to = google_app_engine_application.default
}
When using the terraform import
command, Applications can be imported using one of the formats above. For example:
$ terraform import google_app_engine_application.default {{project-id}}