«Принудительное» создание образа докера в Terraform с помощью docker_registry_image (kreuzwerker/docker)
Я разрабатываю серию лямбда-выражений, использующих образы докеров. Первый шаг — создать их и зарегистрироваться в AWS ECR (не уверен, что все, что я делаю, в порядке, поэтому любые советы приветствуются :-)):
terraform {
...
required_providers {
docker = {
source = "kreuzwerker/docker"
version = ">= 2.12"
}
}
}
resource aws_ecr_repository lambda_repo {
name = "lambda"
}
resource docker_registry_image lambda_image {
name = "<account_id>.dkr.ecr.<region>.amazonaws.com/lambda:latest"
build {
context = "./code/lambda"
}
depends_on = [
aws_ecr_repository.lambda_repo
]
keep_remotely = true
}
resource aws_lambda_function lambda {
...
image_uri = "<account_id>.dkr.ecr.<region>.amazonaws.com/lambda:latest"
source_code_hash = docker_registry_image.lambda_image.sha256_digest
...
}
Итак, с этим кодом:
- docker_registry_image >lambda_image : создайте образ и загрузите его в AWS.
- aws_lambda_function >lambda : если изображение «лямбда: последнее», лямбда обновляется новым кодом
Проблема, с которой я столкнулся, заключается в том, как «заставить» docker_registry_image >lambda_image перестроить образ и обновить «лямбда: последний», когда файл Dockerfile или app.py (основной код, добавляемый в файл) изменился. Также я не уверен, что это способ создания изображений.
Спасибо!!