coda_application (Resource)
Uma aplicação de um ambiente, implantada por digest. Escopos exigidos: apps:write e deployments:write. Criar ou mudar a image dispara um deploy e o apply só termina quando ele chega a RUNNING (ou falha com o motivo). Mudar só instances usa o escalonamento. Porta, CPU, memória, comando, argumentos e região mudam no lugar (update in-place) por PATCH com If-Match da versão guardada no estado; se a aplicação foi alterada fora do OpenTofu/Terraform desde o último refresh, o apply falha pedindo refresh. Mudar name, slug ou health_check_path substitui a aplicação.
Exemplo
resource "coda_application" "api" {
organization_id = data.coda_organization.this.id
project_id = coda_project.web.id
environment_id = coda_environment.production.id
name = "api"
image = "registry.example.com/acme/api@sha256:a970b1c76ce558afc59ee8a20771c8dd25c1e8019cb442f5450d95aa1043be2e"
port = 8080
instances = 2
cpu_millis = 250
memory_mib = 256
timeouts = {
create = "20m"
}
}
Esquema
Obrigatórios
environment_id(String) GUID do ambiente.image(String) Imagem por digest:registro/repositório@sha256:<64 hex>. Uma tag sem digest é recusada. Mudar a imagem faz um novo deploy.name(String) Nome de exibição.organization_id(String) GUID da organização.project_id(String) GUID do projeto.
Opcionais
args(List of String) Argumentos do contêiner; mudam no lugar.command(List of String) Comando do contêiner (substitui o ENTRYPOINT); muda no lugar.cpu_millis(Number) CPU por instância em milicores; muda no lugar, dentro da quota do plano. Padrão: 250.health_check_path(String) Caminho HTTP da verificação de saúde (padrão/health).instances(Number) Número de instâncias; mudar só este atributo escala sem novo deploy. Padrão: 1.memory_mib(Number) Memória por instância em MiB (mínimo 256); muda no lugar, dentro da quota do plano. Padrão: 256.port(Number) Porta do contêiner; muda no lugar com um novo deploy do mesmo digest. Padrão: 8080.region(String) Código da região (padrão: a região padrão da organização). Mudar a região move a aplicação: a nova é criada no destino e a antiga só sai depois deRUNNING; região sem cluster disponível é recusada (region.unavailable).slug(String) Slug da aplicação (padrão: derivado do nome); imutável.timeouts(Attributes) (see below for nested schema)
Somente leitura
current_deployment_id(String) GUID do deploy em execução.deployed_image(String) Imagem que de fato está rodando; difere deimagequando o último deploy falhou.id(String) GUID da aplicação.status(String) Estado do último deploy.version(Number) Versão da aplicação (oETagW/"<versão>"da API), enviada noIf-Matchdas alterações.
Nested Schema for timeouts
Optional:
create(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).delete(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.update(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Importação
Import is supported using the following syntax:
The terraform import command can be used, for example:
tofu import coda_application.api acme/web/production/api