Skip to content

infra: recreate image lambdas during zip migration - #55

Merged
maxsonferovante merged 1 commit into
mainfrom
codex/migrate-lambdas-to-zip
Jun 22, 2026
Merged

infra: recreate image lambdas during zip migration#55
maxsonferovante merged 1 commit into
mainfrom
codex/migrate-lambdas-to-zip

Conversation

@maxsonferovante

Copy link
Copy Markdown
Contributor

No description provided.

@maxsonferovante maxsonferovante self-assigned this Jun 22, 2026
@github-actions

Copy link
Copy Markdown

Terraform Plan (shared)

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions

Copy link
Copy Markdown

Terraform Plan (dev)

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
  - destroy
+/- create replacement and then destroy

Terraform will perform the following actions:

  # module.api_gateway.aws_api_gateway_deployment.api_deployment must be replaced
+/- resource "aws_api_gateway_deployment" "api_deployment" {
      ~ created_date = "2025-12-06T16:44:40Z" -> (known after apply)
      ~ id           = "0ruq8z" -> (known after apply)
      ~ triggers     = {
          - "redeployment" = "e74dfb9a1c06abee6f24c9b881aa7c4f9330031d"
        } -> (known after apply) # forces replacement
        # (3 unchanged attributes hidden)
    }

  # module.api_gateway.aws_api_gateway_integration.lambda_integrations["api-v1-certificate-create"] will be updated in-place
  ~ resource "aws_api_gateway_integration" "lambda_integrations" {
        id                      = "agi-mpl8es0cb7-kjx11s-POST"
      ~ uri                     = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev/invocations" -> (known after apply)
        # (16 unchanged attributes hidden)
    }

  # module.api_gateway.aws_api_gateway_integration.lambda_integrations["api-v1-certificate-create-batch"] will be updated in-place
  ~ resource "aws_api_gateway_integration" "lambda_integrations" {
        id                      = "agi-mpl8es0cb7-mp137e-POST"
      ~ uri                     = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev/invocations" -> (known after apply)
        # (16 unchanged attributes hidden)
    }

  # module.api_gateway.aws_api_gateway_integration.lambda_integrations["api-v1-certificate-download"] will be updated in-place
  ~ resource "aws_api_gateway_integration" "lambda_integrations" {
        id                      = "agi-mpl8es0cb7-8ww5uo-GET"
      ~ uri                     = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev/invocations" -> (known after apply)
        # (16 unchanged attributes hidden)
    }

  # module.api_gateway.aws_api_gateway_integration.lambda_integrations["api-v1-certificate-fetch"] will be updated in-place
  ~ resource "aws_api_gateway_integration" "lambda_integrations" {
        id                      = "agi-mpl8es0cb7-37f13v-GET"
      ~ uri                     = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev/invocations" -> (known after apply)
        # (16 unchanged attributes hidden)
    }

  # module.api_gateway.aws_api_gateway_stage.api_stage will be updated in-place
  ~ resource "aws_api_gateway_stage" "api_stage" {
      ~ deployment_id         = "0ruq8z" -> (known after apply)
        id                    = "ags-mpl8es0cb7-dev"
        tags                  = {
            "Environment" = "dev"
            "Name"        = "tech-floripa-certificates-api-stage-dev"
            "Project"     = "tech-floripa-certificates"
        }
        # (15 unchanged attributes hidden)
    }

  # module.ecr.aws_ecr_repository.api_repository will be destroyed
  # (because aws_ecr_repository.api_repository is not in configuration)
  - resource "aws_ecr_repository" "api_repository" {
      - arn                  = "arn:aws:ecr:us-east-1:334318883918:repository/tech-floripa-certificates-api-dev" -> null
      - force_delete         = true -> null
      - id                   = "tech-floripa-certificates-api-dev" -> null
      - image_tag_mutability = "MUTABLE" -> null
      - name                 = "tech-floripa-certificates-api-dev" -> null
      - region               = "us-east-1" -> null
      - registry_id          = "334318883918" -> null
      - repository_url       = "334318883918.dkr.ecr.us-east-1.amazonaws.com/tech-floripa-certificates-api-dev" -> null
      - tags                 = {
          - "Name"    = "tech-floripa-certificates-api-dev"
          - "Project" = "tech-floripa-certificates"
        } -> null
      - tags_all             = {
          - "Environment" = "dev"
          - "ManagedBy"   = "terraform"
          - "Name"        = "tech-floripa-certificates-api-dev"
          - "Project"     = "tech-floripa-certificates"
        } -> null

      - encryption_configuration {
          - encryption_type = "AES256" -> null
            # (1 unchanged attribute hidden)
        }

      - image_scanning_configuration {
          - scan_on_push = true -> null
        }
    }

  # module.ecr.aws_ecr_repository.notification_repository will be destroyed
  # (because aws_ecr_repository.notification_repository is not in configuration)
  - resource "aws_ecr_repository" "notification_repository" {
      - arn                  = "arn:aws:ecr:us-east-1:334318883918:repository/tech-floripa-certificates-notification-dev" -> null
      - force_delete         = true -> null
      - id                   = "tech-floripa-certificates-notification-dev" -> null
      - image_tag_mutability = "MUTABLE" -> null
      - name                 = "tech-floripa-certificates-notification-dev" -> null
      - region               = "us-east-1" -> null
      - registry_id          = "334318883918" -> null
      - repository_url       = "334318883918.dkr.ecr.us-east-1.amazonaws.com/tech-floripa-certificates-notification-dev" -> null
      - tags                 = {
          - "Name"    = "tech-floripa-certificates-notification-dev"
          - "Project" = "tech-floripa-certificates"
        } -> null
      - tags_all             = {
          - "Environment" = "dev"
          - "ManagedBy"   = "terraform"
          - "Name"        = "tech-floripa-certificates-notification-dev"
          - "Project"     = "tech-floripa-certificates"
        } -> null

      - encryption_configuration {
          - encryption_type = "AES256" -> null
            # (1 unchanged attribute hidden)
        }

      - image_scanning_configuration {
          - scan_on_push = true -> null
        }
    }

  # module.lambda.aws_lambda_event_source_mapping.notification_sqs_trigger will be updated in-place
  ~ resource "aws_lambda_event_source_mapping" "notification_sqs_trigger" {
      ~ function_name                      = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-notification-dev" -> (known after apply)
        id                                 = "59bdce66-0030-4773-912b-24a9e3dd32a6"
        tags                               = {
            "Environment" = "dev"
            "Name"        = "tech-floripa-certificates-notification-sqs-trigger-dev"
            "Project"     = "tech-floripa-certificates"
        }
        # (24 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.lambda.aws_lambda_function.api_function must be replaced
+/- resource "aws_lambda_function" "api_function" {
      ~ architectures                  = [
          - "x86_64",
        ] -> (known after apply)
      ~ arn                            = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev" -> (known after apply)
      ~ code_sha256                    = "36e6fdfd27ac74f62ecb467a827aa505c802bd6029d76edcd207546aa6d6b3fc" -> (known after apply)
      + filename                       = "../../modules/05.lambda/bootstrap/lambda-bootstrap.zip"
      + handler                        = "lambda_function.lambda_handler"
      ~ id                             = "tech-floripa-certificates-api-dev" -> (known after apply)
      - image_uri                      = "334318883918.dkr.ecr.us-east-1.amazonaws.com/tech-floripa-certificates-api-dev@sha256:36e6fdfd27ac74f62ecb467a827aa505c802bd6029d76edcd207546aa6d6b3fc" -> null
      ~ invoke_arn                     = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev/invocations" -> (known after apply)
      ~ last_modified                  = "2025-12-06T16:44:10.000+0000" -> (known after apply)
      - layers                         = [] -> null
      ~ package_type                   = "Image" -> "Zip" # forces replacement
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev:$LATEST" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev:$LATEST/invocations" -> (known after apply)
      + runtime                        = "python3.13"
      + signing_job_arn                = (known after apply)
      + signing_profile_version_arn    = (known after apply)
      + source_code_hash               = "SpO0q/yFR4BZluRLR3vzorn98UjwAq+JHjfz9gvFkw8="
      ~ source_code_size               = 0 -> (known after apply)
        tags                           = {
            "Environment" = "dev"
            "Name"        = "tech-floripa-certificates-api-dev"
            "Project"     = "tech-floripa-certificates"
        }
      ~ version                        = "$LATEST" -> (known after apply)
        # (13 unchanged attributes hidden)

      ~ ephemeral_storage (known after apply)
      - ephemeral_storage {
          - size = 512 -> null
        }

      ~ logging_config (known after apply)
      - logging_config {
          - log_format            = "Text" -> null
          - log_group             = "/aws/lambda/tech-floripa-certificates-api-dev" -> null
            # (2 unchanged attributes hidden)
        }

      ~ tracing_config (known after apply)
      - tracing_config {
          - mode = "PassThrough" -> null
        }

        # (1 unchanged block hidden)
    }

  # module.lambda.aws_lambda_function.notification_function will be created
  + resource "aws_lambda_function" "notification_function" {
      + architectures                  = (known after apply)
      + arn                            = (known after apply)
      + code_sha256                    = (known after apply)
      + filename                       = "../../modules/05.lambda/bootstrap/lambda-bootstrap.zip"
      + function_name                  = "tech-floripa-certificates-notification-dev"
      + handler                        = "lambda_function.lambda_handler"
      + id                             = (known after apply)
      + invoke_arn                     = (known after apply)
      + last_modified                  = (known after apply)
      + memory_size                    = 512
      + package_type                   = "Zip"
      + publish                        = false
      + qualified_arn                  = (known after apply)
      + qualified_invoke_arn           = (known after apply)
      + region                         = "us-east-1"
      + reserved_concurrent_executions = -1
      + role                           = "arn:aws:iam::334318883918:role/tech-floripa-certificates-lambda-notification-role-dev"
      + runtime                        = "python3.13"
      + signing_job_arn                = (known after apply)
      + signing_profile_version_arn    = (known after apply)
      + skip_destroy                   = false
      + source_code_hash               = "SpO0q/yFR4BZluRLR3vzorn98UjwAq+JHjfz9gvFkw8="
      + source_code_size               = (known after apply)
      + tags                           = {
          + "Environment" = "dev"
          + "Name"        = "tech-floripa-certificates-notification-dev"
          + "Project"     = "tech-floripa-certificates"
        }
      + tags_all                       = {
          + "Environment" = "dev"
          + "ManagedBy"   = "terraform"
          + "Name"        = "tech-floripa-certificates-notification-dev"
          + "Project"     = "tech-floripa-certificates"
        }
      + timeout                        = 900
      + version                        = (known after apply)

      + environment {
          + variables = {
              + "API_GATEWAY_DOWNLOAD_URL" = "https://mpl8es0cb7.execute-api.us-east-1.amazonaws.com/dev/api/v1/certificate/download"
              + "ENVIRONMENT"              = "dev"
              + "PROJECT_NAME"             = "tech-floripa-certificates"
              + "REGION"                   = "us-east-1"
              + "S3_BUCKET_NAME"           = "tech-floripa-certificates-dev-bucket"
              + "URL_SERVICE_TECH"         = "https://tech.floripa.br/wp-json/custom/v1"
            }
        }

      + ephemeral_storage (known after apply)

      + logging_config (known after apply)

      + tracing_config (known after apply)
    }

Plan: 3 to add, 6 to change, 4 to destroy.

Changes to Outputs:
  ~ infrastructure_summary                    = {
      - ecr         = {
          - api_repository_name = "tech-floripa-certificates-api-dev"
          - repository_url      = "334318883918.dkr.ecr.us-east-1.amazonaws.com/tech-floripa-certificates-api-dev"
        }
      ~ lambda      = {
          + builder_function_arn       = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-builder-dev"
          + builder_function_name      = "tech-floripa-certificates-builder-dev"
          ~ function_arn               = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev" -> (known after apply)
          ~ notification_function_arn  = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-notification-dev" -> (known after apply)
            # (2 unchanged attributes hidden)
        }
        # (4 unchanged attributes hidden)
    }
  ~ lambda_function_arn                       = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-api-dev" -> (known after apply)
  ~ lambda_notification_function_arn          = "arn:aws:lambda:us-east-1:334318883918:function:tech-floripa-certificates-notification-dev" -> (known after apply)

@maxsonferovante
maxsonferovante merged commit 96778fa into main Jun 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant