-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: GCForms release v3.9.0 #644
Conversation
2a0b9f3
to
57041d6
Compare
f5b76c9
to
2ce5007
Compare
2ce5007
to
95fe326
Compare
Production: ecr✅ Terraform Init: Plan: 27 to add, 0 to change, 1 to destroy Show summary
Show planResource actions are indicated with the following symbols:
+ create
-/+ destroy and then create replacement
Terraform will perform the following actions:
# aws_ecr_lifecycle_policy.form_viewer_policy must be replaced
-/+ resource "aws_ecr_lifecycle_policy" "form_viewer_policy" {
~ id = "form_viewer_production" -> (known after apply)
~ policy = jsonencode(
~ {
~ rules = [
~ {
~ selection = {
- tagPrefixList = [
- "v",
]
~ tagStatus = "tagged" -> "any"
# (2 unchanged attributes hidden)
}
# (3 unchanged attributes hidden)
},
]
} # forces replacement
)
~ registry_id = "957818836222" -> (known after apply)
# (1 unchanged attribute hidden)
}
# aws_ecr_lifecycle_policy.lambda["audit-logs-archiver-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "audit-logs-archiver-lambda"
}
# aws_ecr_lifecycle_policy.lambda["audit-logs-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "audit-logs-lambda"
}
# aws_ecr_lifecycle_policy.lambda["cognito-email-sender-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "cognito-email-sender-lambda"
}
# aws_ecr_lifecycle_policy.lambda["cognito-pre-sign-up-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "cognito-pre-sign-up-lambda"
}
# aws_ecr_lifecycle_policy.lambda["form-archiver-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "form-archiver-lambda"
}
# aws_ecr_lifecycle_policy.lambda["load-testing-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "load-testing-lambda"
}
# aws_ecr_lifecycle_policy.lambda["nagware-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "nagware-lambda"
}
# aws_ecr_lifecycle_policy.lambda["notify-slack-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "notify-slack-lambda"
}
# aws_ecr_lifecycle_policy.lambda["reliability-dlq-consumer-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "reliability-dlq-consumer-lambda"
}
# aws_ecr_lifecycle_policy.lambda["reliability-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "reliability-lambda"
}
# aws_ecr_lifecycle_policy.lambda["response-archiver-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "response-archiver-lambda"
}
# aws_ecr_lifecycle_policy.lambda["submission-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "submission-lambda"
}
# aws_ecr_lifecycle_policy.lambda["vault-integrity-lambda"] will be created
+ resource "aws_ecr_lifecycle_policy" "lambda" {
+ id = (known after apply)
+ policy = jsonencode(
{
+ rules = [
+ {
+ action = {
+ type = "expire"
}
+ description = "Keep last 10 images"
+ rulePriority = 1
+ selection = {
+ countNumber = 10
+ countType = "imageCountMoreThan"
+ tagStatus = "any"
}
},
]
}
)
+ registry_id = (known after apply)
+ repository = "vault-integrity-lambda"
}
# aws_ecr_repository.lambda["audit-logs-archiver-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "audit-logs-archiver-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["audit-logs-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "audit-logs-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["cognito-email-sender-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "cognito-email-sender-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["cognito-pre-sign-up-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "cognito-pre-sign-up-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["form-archiver-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "form-archiver-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["load-testing-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "load-testing-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["nagware-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "nagware-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["notify-slack-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "notify-slack-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["reliability-dlq-consumer-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "reliability-dlq-consumer-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["reliability-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "reliability-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["response-archiver-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "response-archiver-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["submission-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "submission-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
# aws_ecr_repository.lambda["vault-integrity-lambda"] will be created
+ resource "aws_ecr_repository" "lambda" {
+ arn = (known after apply)
+ id = (known after apply)
+ image_tag_mutability = "MUTABLE"
+ name = "vault-integrity-lambda"
+ registry_id = (known after apply)
+ repository_url = (known after apply)
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ image_scanning_configuration {
+ scan_on_push = true
}
}
Plan: 27 to add, 0 to change, 1 to destroy.
Changes to Outputs:
+ ecr_repository_url_audit_logs_archiver_lambda = (known after apply)
+ ecr_repository_url_audit_logs_lambda = (known after apply)
+ ecr_repository_url_cognito_email_sender_lambda = (known after apply)
+ ecr_repository_url_cognito_pre_sign_up_lambda = (known after apply)
+ ecr_repository_url_form_archiver_lambda = (known after apply)
- ecr_repository_url_load_test = "" -> null
+ ecr_repository_url_load_testing_lambda = (known after apply)
+ ecr_repository_url_nagware_lambda = (known after apply)
+ ecr_repository_url_notify_slack_lambda = (known after apply)
+ ecr_repository_url_reliability_dlq_consumer_lambda = (known after apply)
+ ecr_repository_url_reliability_lambda = (known after apply)
+ ecr_repository_url_response_archiver_lambda = (known after apply)
+ ecr_repository_url_submission_lambda = (known after apply)
+ ecr_repository_url_vault_integrity_lambda = (known after apply)
─────────────────────────────────────────────────────────────────────────────
Saved the plan to: plan.tfplan
To perform exactly these actions, run the following command to apply:
terraform apply "plan.tfplan"
Show Conftest resultsWARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"audit-logs-archiver-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"audit-logs-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"cognito-email-sender-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"cognito-pre-sign-up-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"form-archiver-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"load-testing-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"nagware-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"notify-slack-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"reliability-dlq-consumer-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"reliability-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"response-archiver-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"submission-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.lambda[\"vault-integrity-lambda\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecr_repository.viewer_repository"]
33 tests, 19 passed, 14 warnings, 0 failures, 0 exceptions
|
Production: s3✅ Terraform Init: Plan: 0 to add, 0 to change, 5 to destroy Show summary
Show planResource actions are indicated with the following symbols:
- destroy
Terraform will perform the following actions:
# aws_s3_bucket.lambda_code will be destroyed
# (because aws_s3_bucket.lambda_code is not in configuration)
- resource "aws_s3_bucket" "lambda_code" {
- arn = "arn:aws:s3:::forms-production-lambda-code" -> null
- bucket = "forms-production-lambda-code" -> null
- bucket_domain_name = "forms-production-lambda-code.s3.amazonaws.com" -> null
- bucket_regional_domain_name = "forms-production-lambda-code.s3.ca-central-1.amazonaws.com" -> null
- force_destroy = true -> null
- hosted_zone_id = "Z1QDHH18159H29" -> null
- id = "forms-production-lambda-code" -> null
- object_lock_enabled = false -> null
- region = "ca-central-1" -> null
- request_payer = "BucketOwner" -> null
- tags = {} -> null
- tags_all = {
- "CostCentre" = "forms-platform-production"
- "Terraform" = "true"
} -> null
- grant {
- id = "9a5058ac2253284c428c54c019d006666ef3eb73e380322b05c715157b6c384a" -> null
- permissions = [
- "FULL_CONTROL",
] -> null
- type = "CanonicalUser" -> null
}
- server_side_encryption_configuration {
- rule {
- bucket_key_enabled = false -> null
- apply_server_side_encryption_by_default {
- sse_algorithm = "AES256" -> null
}
}
}
- versioning {
- enabled = true -> null
- mfa_delete = false -> null
}
}
# aws_s3_bucket_ownership_controls.lambda_code will be destroyed
# (because aws_s3_bucket_ownership_controls.lambda_code is not in configuration)
- resource "aws_s3_bucket_ownership_controls" "lambda_code" {
- bucket = "forms-production-lambda-code" -> null
- id = "forms-production-lambda-code" -> null
- rule {
- object_ownership = "BucketOwnerEnforced" -> null
}
}
# aws_s3_bucket_public_access_block.lambda_code will be destroyed
# (because aws_s3_bucket_public_access_block.lambda_code is not in configuration)
- resource "aws_s3_bucket_public_access_block" "lambda_code" {
- block_public_acls = true -> null
- block_public_policy = true -> null
- bucket = "forms-production-lambda-code" -> null
- id = "forms-production-lambda-code" -> null
- ignore_public_acls = true -> null
- restrict_public_buckets = true -> null
}
# aws_s3_bucket_server_side_encryption_configuration.lambda_code will be destroyed
# (because aws_s3_bucket_server_side_encryption_configuration.lambda_code is not in configuration)
- resource "aws_s3_bucket_server_side_encryption_configuration" "lambda_code" {
- bucket = "forms-production-lambda-code" -> null
- id = "forms-production-lambda-code" -> null
- rule {
- bucket_key_enabled = false -> null
- apply_server_side_encryption_by_default {
- sse_algorithm = "AES256" -> null
}
}
}
# aws_s3_bucket_versioning.lambda_code will be destroyed
# (because aws_s3_bucket_versioning.lambda_code is not in configuration)
- resource "aws_s3_bucket_versioning" "lambda_code" {
- bucket = "forms-production-lambda-code" -> null
- id = "forms-production-lambda-code" -> null
- versioning_configuration {
- status = "Enabled" -> null
}
}
Plan: 0 to add, 0 to change, 5 to destroy.
Changes to Outputs:
- lambda_code_arn = "arn:aws:s3:::forms-production-lambda-code" -> null
- lambda_code_id = "forms-production-lambda-code" -> null
─────────────────────────────────────────────────────────────────────────────
Saved the plan to: plan.tfplan
To perform exactly these actions, run the following command to apply:
terraform apply "plan.tfplan"
Show Conftest resultsWARN - plan.json - main - Missing Common Tags: ["aws_s3_bucket.archive_storage"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_bucket.audit_logs_archive_storage"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_bucket.reliability_file_storage"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_bucket.vault_file_storage"]
23 tests, 19 passed, 4 warnings, 0 failures, 0 exceptions
|
Production: cognito✅ Terraform Init: Plan: 4 to add, 1 to change, 6 to destroy Show summary
Show planResource actions are indicated with the following symbols:
~ update in-place
- destroy
-/+ destroy and then create replacement
Terraform will perform the following actions:
# aws_cognito_user_pool.forms will be updated in-place
~ resource "aws_cognito_user_pool" "forms" {
id = "ca-central-1_eSTGTCw33"
name = "forms_user_pool"
tags = {}
# (11 unchanged attributes hidden)
~ lambda_config {
~ pre_sign_up = "arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Pre_Sign_Up" -> (known after apply)
# (1 unchanged attribute hidden)
~ custom_email_sender {
~ lambda_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Email_Sender" -> (known after apply)
# (1 unchanged attribute hidden)
}
}
# (5 unchanged blocks hidden)
}
# aws_iam_policy.lambda_s3 will be destroyed
# (because aws_iam_policy.lambda_s3 is not in configuration)
- resource "aws_iam_policy" "lambda_s3" {
- arn = "arn:aws:iam::957818836222:policy/cognito_lambda_s3" -> null
- description = "IAM policy for storing files in S3" -> null
- id = "arn:aws:iam::957818836222:policy/cognito_lambda_s3" -> null
- name = "cognito_lambda_s3" -> null
- path = "/" -> null
- policy = jsonencode(
{
- Statement = [
- {
- Action = [
- "s3:PutObject",
- "s3:ListBucket",
- "s3:GetObject",
- "s3:DeleteObject",
]
- Effect = "Allow"
- Resource = [
- "arn:aws:s3:::forms-production-lambda-code/*",
- "arn:aws:s3:::forms-production-lambda-code",
]
},
]
- Version = "2012-10-17"
}
) -> null
- policy_id = "ANPA56ATTST7GETOCTMRQ" -> null
- tags = {} -> null
- tags_all = {
- "CostCentre" = "forms-platform-production"
- "Terraform" = "true"
} -> null
}
# aws_lambda_function.cognito_email_sender must be replaced
-/+ resource "aws_lambda_function" "cognito_email_sender" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Email_Sender" -> (known after apply)
~ function_name = "Cognito_Email_Sender" -> "cognito-email-sender" # forces replacement
- handler = "cognito_email_sender.handler" -> null
~ id = "Cognito_Email_Sender" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Email_Sender/invocations" -> (known after apply)
~ last_modified = "2024-01-25T15:02:50.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Email_Sender:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Email_Sender:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "cognito_email_sender_code" -> null
- s3_object_version = "aLrLBKxnFPKm62yxAOX6kAYx_4l.n1T3" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "JQU+xOvCFaZHW/kdM3TnHxkFnJXz/ytxiRXLMJzpxF0=" -> (known after apply)
~ source_code_size = 5346786 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.cognito_pre_sign_up must be replaced
-/+ resource "aws_lambda_function" "cognito_pre_sign_up" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Pre_Sign_Up" -> (known after apply)
- filename = "/tmp/pre_sign_up_main.zip" -> null
~ function_name = "Cognito_Pre_Sign_Up" -> "cognito-pre-sign-up" # forces replacement
- handler = "pre_sign_up.handler" -> null
~ id = "Cognito_Pre_Sign_Up" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Pre_Sign_Up/invocations" -> (known after apply)
~ last_modified = "2024-01-25T15:02:44.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Pre_Sign_Up:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Cognito_Pre_Sign_Up:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "QTDI90Q+x/QfDnbowk26CzT+EGf4lzBQCRoJniGB88s=" -> (known after apply)
~ source_code_size = 326 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (2 unchanged blocks hidden)
}
# aws_lambda_permission.allow_cognito_to_call_cognito_email_sender_lambda must be replaced
-/+ resource "aws_lambda_permission" "allow_cognito_to_call_cognito_email_sender_lambda" {
~ function_name = "Cognito_Email_Sender" -> "cognito-email-sender" # forces replacement
~ id = "terraform-20230619152749482600000002" -> (known after apply)
~ statement_id = "terraform-20230619152749482600000002" -> (known after apply)
~ statement_id_prefix = "terraform-" -> (known after apply)
# (3 unchanged attributes hidden)
}
# aws_lambda_permission.allow_cognito_to_call_cognito_pre_sign_up_lambda must be replaced
-/+ resource "aws_lambda_permission" "allow_cognito_to_call_cognito_pre_sign_up_lambda" {
~ function_name = "Cognito_Pre_Sign_Up" -> "cognito-pre-sign-up" # forces replacement
~ id = "terraform-20230619152749480500000001" -> (known after apply)
~ statement_id = "terraform-20230619152749480500000001" -> (known after apply)
~ statement_id_prefix = "terraform-" -> (known after apply)
# (3 unchanged attributes hidden)
}
# aws_s3_object.cognito_email_sender_code will be destroyed
# (because aws_s3_object.cognito_email_sender_code is not in configuration)
- resource "aws_s3_object" "cognito_email_sender_code" {
- bucket = "forms-production-lambda-code" -> null
- bucket_key_enabled = false -> null
- content_type = "binary/octet-stream" -> null
- etag = "77b6abfcc32504965c9f28128c3bece9-2" -> null
- force_destroy = false -> null
- id = "cognito_email_sender_code" -> null
- key = "cognito_email_sender_code" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/tmp/cognito_email_sender.zip" -> null
- source_hash = "JQU+xOvCFaZHW/kdM3TnHxkFnJXz/ytxiRXLMJzpxF0=" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "CostCentre" = "forms-platform-production"
- "Terraform" = "true"
} -> null
- version_id = "aLrLBKxnFPKm62yxAOX6kAYx_4l.n1T3" -> null
}
Plan: 4 to add, 1 to change, 6 to destroy.
─────────────────────────────────────────────────────────────────────────────
Saved the plan to: plan.tfplan
To perform exactly these actions, run the following command to apply:
terraform apply "plan.tfplan"
Show Conftest resultsWARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.cognito_email_sender"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.cognito_pre_sign_up"]
WARN - plan.json - main - Missing Common Tags: ["aws_cognito_user_pool.forms"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.cognito_lambda_kms"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.cognito_lambda_logging"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.cognito_lambda_secrets"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.cognito_userpool_import_logging"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_role.cognito_lambda"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_role.cognito_userpool_import"]
WARN - plan.json - main - Missing Common Tags: ["aws_kms_key.cognito_encryption"]
WARN - plan.json - main - Missing Common Tags: ["aws_lambda_function.cognito_email_sender"]
WARN - plan.json - main - Missing Common Tags: ["aws_lambda_function.cognito_pre_sign_up"]
31 tests, 19 passed, 12 warnings, 0 failures, 0 exceptions
|
Production: load_balancer✅ Terraform Init: Plan: 1 to add, 5 to change, 0 to destroy Show summary
Show planResource actions are indicated with the following symbols:
+ create
~ update in-place
Terraform will perform the following actions:
# aws_lb_target_group.form_viewer_1 will be updated in-place
~ resource "aws_lb_target_group" "form_viewer_1" {
id = "arn:aws:elasticloadbalancing:ca-central-1:957818836222:targetgroup/form-viewer/8dac72758c8ecdcc"
name = "form-viewer"
tags = {
"Name" = "form_viewer_1"
}
# (17 unchanged attributes hidden)
~ health_check {
~ path = "/form-builder/edit" -> "/en/form-builder"
# (8 unchanged attributes hidden)
}
# (3 unchanged blocks hidden)
}
# aws_lb_target_group.form_viewer_2 will be updated in-place
~ resource "aws_lb_target_group" "form_viewer_2" {
id = "arn:aws:elasticloadbalancing:ca-central-1:957818836222:targetgroup/form-viewer-2/a03ac97959b5fb63"
name = "form-viewer-2"
tags = {
"Name" = "form_viewer_2"
}
# (17 unchanged attributes hidden)
~ health_check {
~ path = "/form-builder/edit" -> "/en/form-builder"
# (8 unchanged attributes hidden)
}
# (3 unchanged blocks hidden)
}
# aws_wafv2_regex_pattern_set.cognito_login_paths will be updated in-place
~ resource "aws_wafv2_regex_pattern_set" "cognito_login_paths" {
id = "a810cde4-c807-4b63-9b86-33be80670eae"
name = "cognito_login_paths"
tags = {}
# (5 unchanged attributes hidden)
+ regular_expression {
+ regex_string = "^\\/(?:en|fr)?\\/auth\\/mfa$"
}
+ regular_expression {
+ regex_string = "^\\/(api\\/auth\\/csrf)$"
}
# (1 unchanged block hidden)
}
# aws_wafv2_regex_pattern_set.valid_app_uri_paths will be updated in-place
~ resource "aws_wafv2_regex_pattern_set" "valid_app_uri_paths" {
id = "f3927a12-2101-47c6-9a47-7353ac95ba92"
name = "valid_app_uri_paths"
tags = {}
# (5 unchanged attributes hidden)
- regular_expression {
- regex_string = "^\\/(?:en|fr)?\\/?(?:(admin|id|api|auth|signup|profile|forms|unsupported-browser|terms-of-use|404)(?:\\/[\\w-]+)?)(?:\\/.*)?$" -> null
}
+ regular_expression {
+ regex_string = "^\\/(?:en|fr)?\\/?(?:(admin|id|api|auth|signup|profile|forms|unsupported-browser|terms-of-use|contact|support|404)(?:\\/[\\w-]+)?)(?:\\/.*)?$"
}
# (4 unchanged blocks hidden)
}
# aws_wafv2_rule_group.rate_limiters_group will be created
+ resource "aws_wafv2_rule_group" "rate_limiters_group" {
+ arn = (known after apply)
+ capacity = 32
+ id = (known after apply)
+ lock_token = (known after apply)
+ name = "RateLimitersGroup"
+ name_prefix = (known after apply)
+ scope = "REGIONAL"
+ tags_all = {
+ "CostCentre" = "forms-platform-production"
+ "Terraform" = "true"
}
+ rule {
+ name = "BlanketRequestLimit"
+ priority = 1
+ action {
+ block {
}
}
+ statement {
+ rate_based_statement {
+ aggregate_key_type = "IP"
+ limit = 2000
}
}
+ visibility_config {
+ cloudwatch_metrics_enabled = true
+ metric_name = "BlanketRequestLimit"
+ sampled_requests_enabled = true
}
}
+ rule {
+ name = "PostRequestLimit"
+ priority = 2
+ action {
+ block {
}
}
+ statement {
+ rate_based_statement {
+ aggregate_key_type = "IP"
+ limit = 100
+ scope_down_statement {
+ byte_match_statement {
+ positional_constraint = "EXACTLY"
+ search_string = "post"
+ field_to_match {
+ method {}
}
+ text_transformation {
+ priority = 1
+ type = "LOWERCASE"
}
}
}
}
}
+ visibility_config {
+ cloudwatch_metrics_enabled = true
+ metric_name = "PostRequestRateLimit"
+ sampled_requests_enabled = true
}
}
+ visibility_config {
+ cloudwatch_metrics_enabled = true
+ metric_name = "RateLimitersGroup"
+ sampled_requests_enabled = false
}
}
# aws_wafv2_web_acl.forms_acl will be updated in-place
~ resource "aws_wafv2_web_acl" "forms_acl" {
id = "88f61111-f91e-442b-9a19-c57c4f43ef7a"
name = "GCForms"
tags = {}
# (6 unchanged attributes hidden)
- rule {
- name = "PostRequestLimit" -> null
- priority = 2 -> null
- action {
- block {
}
}
- statement {
- rate_based_statement {
- aggregate_key_type = "IP" -> null
- limit = 100 -> null
- scope_down_statement {
- byte_match_statement {
- positional_constraint = "EXACTLY" -> null
- search_string = "post" -> null
- field_to_match {
- method {}
}
- text_transformation {
- priority = 1 -> null
- type = "LOWERCASE" -> null
}
}
}
}
}
- visibility_config {
- cloudwatch_metrics_enabled = true -> null
- metric_name = "PostRequestRateLimit" -> null
- sampled_requests_enabled = true -> null
}
}
- rule {
- name = "AWSManagedRulesAmazonIpReputationList" -> null
- priority = 1 -> null
- override_action {
- none {}
}
- statement {
- managed_rule_group_statement {
- name = "AWSManagedRulesAmazonIpReputationList" -> null
- vendor_name = "AWS" -> null
}
}
- visibility_config {
- cloudwatch_metrics_enabled = true -> null
- metric_name = "AWSManagedRulesAmazonIpReputationList" -> null
- sampled_requests_enabled = true -> null
}
}
- rule {
- name = "AWSManagedRulesKnownBadInputsRuleSet" -> null
- priority = 6 -> null
- override_action {
- none {}
}
- statement {
- managed_rule_group_statement {
- name = "AWSManagedRulesKnownBadInputsRuleSet" -> null
- vendor_name = "AWS" -> null
}
}
- visibility_config {
- cloudwatch_metrics_enabled = true -> null
- metric_name = "AWSManagedRulesKnownBadInputsRuleSet" -> null
- sampled_requests_enabled = true -> null
}
}
- rule {
- name = "AWSManagedRulesLinuxRuleSet" -> null
- priority = 7 -> null
- override_action {
- none {}
}
- statement {
- managed_rule_group_statement {
- name = "AWSManagedRulesLinuxRuleSet" -> null
- vendor_name = "AWS" -> null
}
}
- visibility_config {
- cloudwatch_metrics_enabled = true -> null
- metric_name = "AWSManagedRulesLinuxRuleSet" -> null
- sampled_requests_enabled = true -> null
}
}
+ rule {
+ name = "AWSManagedRulesAmazonIpReputationList"
+ priority = 1
+ override_action {
+ none {}
}
+ statement {
+ managed_rule_group_statement {
+ name = "AWSManagedRulesAmazonIpReputationList"
+ vendor_name = "AWS"
}
}
+ visibility_config {
+ cloudwatch_metrics_enabled = true
+ metric_name = "AWSManagedRulesAmazonIpReputationList"
+ sampled_requests_enabled = true
}
}
+ rule {
+ name = "AWSManagedRulesKnownBadInputsRuleSet"
+ priority = 6
+ override_action {
+ none {}
}
+ statement {
+ managed_rule_group_statement {
+ name = "AWSManagedRulesKnownBadInputsRuleSet"
+ vendor_name = "AWS"
}
}
+ visibility_config {
+ cloudwatch_metrics_enabled = true
+ metric_name = "AWSManagedRulesKnownBadInputsRuleSet"
+ sampled_requests_enabled = true
}
}
+ rule {
+ name = "AWSManagedRulesLinuxRuleSet"
+ priority = 7
+ override_action {
+ none {}
}
+ statement {
+ managed_rule_group_statement {
+ name = "AWSManagedRulesLinuxRuleSet"
+ vendor_name = "AWS"
}
}
+ visibility_config {
+ cloudwatch_metrics_enabled = true
+ metric_name = "AWSManagedRulesLinuxRuleSet"
+ sampled_requests_enabled = true
}
}
+ rule {
+ name = "RateLimitersRuleGroup"
+ priority = 2
+ override_action {
+ none {}
}
+ statement {
+ rule_group_reference_statement {
+ arn = (known after apply)
}
}
+ visibility_config {
+ cloudwatch_metrics_enabled = true
+ metric_name = "rate_limiters_rule_group"
+ sampled_requests_enabled = false
}
}
# (6 unchanged blocks hidden)
}
Plan: 1 to add, 5 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Saved the plan to: plan.tfplan
To perform exactly these actions, run the following command to apply:
terraform apply "plan.tfplan"
Show Conftest resultsWARN - plan.json - main - Missing Common Tags: ["aws_acm_certificate.form_viewer"]
WARN - plan.json - main - Missing Common Tags: ["aws_acm_certificate.form_viewer_maintenance_mode"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudfront_distribution.maintenance_mode"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_role.firehose_waf_logs"]
WARN - plan.json - main - Missing Common Tags: ["aws_kinesis_firehose_delivery_stream.firehose_waf_logs"]
WARN - plan.json - main - Missing Common Tags: ["aws_lb.form_viewer"]
WARN - plan.json - main - Missing Common Tags: ["aws_lb_listener.form_viewer_http"]
WARN - plan.json - main - Missing Common Tags: ["aws_lb_listener.form_viewer_https"]
WARN - plan.json - main - Missing Common Tags: ["aws_lb_target_group.form_viewer_1"]
WARN - plan.json - main - Missing Common Tags: ["aws_lb_target_group.form_viewer_2"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_bucket.maintenance_mode"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_object.maintenance_static_page_css_files[\"style.css\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_object.maintenance_static_page_html_files[\"index-fr.html\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_object.maintenance_static_page_html_files[\"index.html\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_object.maintenance_static_page_ico_files[\"favicon.ico\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_s3_object.maintenance_static_page_svg_files[\"site-unavailable.svg\"]"]
WARN - plan.json - main - Missing Common Tags: ["aws_shield_protection.alb"]
WARN - plan.json - main - Missing Common Tags: ["aws_shield_protection.route53_hosted_zone[0]"]
WARN - plan.json - main - Missing Common Tags: ["aws_wafv2_regex_pattern_set.cognito_login_paths"]
WARN - plan.json - main - Missing Common Tags: ["aws_wafv2_regex_pattern_set.forms_base_url"]
WARN - plan.json - main - Missing Common Tags:... |
Production: app✅ Terraform Init: Plan: 1 to add, 0 to change, 1 to destroy Show summary
Show planResource actions are indicated with the following symbols:
-/+ destroy and then create replacement
Terraform will perform the following actions:
# aws_ecs_task_definition.form_viewer must be replaced
-/+ resource "aws_ecs_task_definition" "form_viewer" {
~ arn = "arn:aws:ecs:ca-central-1:957818836222:task-definition/form-viewer:65" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:ca-central-1:957818836222:task-definition/form-viewer" -> (known after apply)
~ container_definitions = jsonencode(
~ [
~ {
- cpu = 0
- essential = true
~ linuxParameters = {
~ capabilities = {
- add = []
# (1 unchanged attribute hidden)
}
}
- mountPoints = []
name = "form_viewer"
~ portMappings = [
~ {
- hostPort = 3000
- protocol = "tcp"
# (1 unchanged attribute hidden)
},
]
- systemControls = []
- volumesFrom = []
# (4 unchanged attributes hidden)
},
] # forces replacement
)
~ id = "form-viewer" -> (known after apply)
~ revision = 65 -> (known after apply)
- tags = {} -> null
# (9 unchanged attributes hidden)
}
Plan: 1 to add, 0 to change, 1 to destroy.
─────────────────────────────────────────────────────────────────────────────
Saved the plan to: plan.tfplan
To perform exactly these actions, run the following command to apply:
terraform apply "plan.tfplan"
Show Conftest resultsWARN - plan.json - main - Missing Common Tags: ["aws_appautoscaling_target.forms[0]"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.forms"]
WARN - plan.json - main - Missing Common Tags: ["aws_codedeploy_app.app"]
WARN - plan.json - main - Missing Common Tags: ["aws_codedeploy_deployment_group.app"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecs_cluster.forms"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecs_service.form_viewer"]
WARN - plan.json - main - Missing Common Tags: ["aws_ecs_task_definition.form_viewer"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.cognito"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.forms_dynamodb"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.forms_kms"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.forms_s3"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.forms_secrets_manager"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.forms_sqs"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_role.codedeploy"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_role.forms"]
34 tests, 19 passed, 15 warnings, 0 failures, 0 exceptions
|
Production: lambdas✅ Terraform Init: Plan: 14 to add, 10 to change, 26 to destroy Show summary
✂ Warning: plan has been truncated! See the full plan in the logs. Show planResource actions are indicated with the following symbols:
~ update in-place
- destroy
-/+ destroy and then create replacement
Terraform will perform the following actions:
# aws_cloudwatch_event_target.audit_logs_archiver_lambda_trigger will be updated in-place
~ resource "aws_cloudwatch_event_target" "audit_logs_archiver_lambda_trigger" {
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs_Archiver" -> (known after apply)
id = "audit-logs-archiver-lambda-trigger-terraform-20240227164709957300000001"
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_event_target.form_archiver_lambda_trigger will be updated in-place
~ resource "aws_cloudwatch_event_target" "form_archiver_lambda_trigger" {
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Archive_Form_Templates" -> (known after apply)
id = "form-archiver-lambda-trigger-terraform-20240213151144091000000003"
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_event_target.nagware_lambda_trigger will be updated in-place
~ resource "aws_cloudwatch_event_target" "nagware_lambda_trigger" {
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Nagware" -> (known after apply)
id = "nagware-lambda-trigger-terraform-20240213151155623500000004"
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_event_target.reliability_dlq_lambda_trigger will be updated in-place
~ resource "aws_cloudwatch_event_target" "reliability_dlq_lambda_trigger" {
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Reliability_DLQ_Consumer" -> (known after apply)
id = "reliability-dlq-lambda-trigger-terraform-20240213151144080500000001"
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_event_target.response_archiver_lambda_trigger will be updated in-place
~ resource "aws_cloudwatch_event_target" "response_archiver_lambda_trigger" {
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Response_Archiver" -> (known after apply)
id = "response-archiver-lambda-trigger-terraform-20240213151144087800000002"
# (3 unchanged attributes hidden)
}
# aws_iam_policy.lambda_s3 will be updated in-place
~ resource "aws_iam_policy" "lambda_s3" {
id = "arn:aws:iam::957818836222:policy/lambda_s3"
name = "lambda_s3"
~ policy = jsonencode(
~ {
~ Statement = [
~ {
~ Resource = [
# (3 unchanged elements hidden)
"arn:aws:s3:::forms-production-reliability-file-storage",
- "arn:aws:s3:::forms-production-lambda-code/*",
- "arn:aws:s3:::forms-production-lambda-code",
"arn:aws:s3:::forms-production-audit-logs-archive-storage/*",
# (3 unchanged elements hidden)
]
# (2 unchanged attributes hidden)
},
]
# (1 unchanged attribute hidden)
}
)
tags = {}
# (5 unchanged attributes hidden)
}
# aws_lambda_code_signing_config.lambda_code_signing_config[0] will be destroyed
# (because aws_lambda_code_signing_config.lambda_code_signing_config is not in configuration)
- resource "aws_lambda_code_signing_config" "lambda_code_signing_config" {
- arn = "arn:aws:lambda:ca-central-1:957818836222:code-signing-config:csc-0ea61cbb9c887afee" -> null
- config_id = "csc-0ea61cbb9c887afee" -> null
- id = "arn:aws:lambda:ca-central-1:957818836222:code-signing-config:csc-0ea61cbb9c887afee" -> null
- last_modified = "2024-01-25T16:10:17.108835Z" -> null
- allowed_publishers {
- signing_profile_version_arns = [
- "arn:aws:signer:ca-central-1:957818836222:/signing-profiles/lambda_signing_profile_20240125160945309900000001/qlihrOkB2U",
] -> null
}
- policies {
- untrusted_artifact_on_deployment = "Enforce" -> null
}
}
# aws_lambda_event_source_mapping.audit_logs will be updated in-place
~ resource "aws_lambda_event_source_mapping" "audit_logs" {
~ function_name = "arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs" -> (known after apply)
id = "46934244-6fab-43a6-9280-8c8309c0d6b8"
# (17 unchanged attributes hidden)
}
# aws_lambda_event_source_mapping.reliability will be updated in-place
~ resource "aws_lambda_event_source_mapping" "reliability" {
~ function_name = "arn:aws:lambda:ca-central-1:957818836222:function:Reliability" -> (known after apply)
id = "2f994c5c-aeea-4d98-a56a-cd857e06ac89"
# (17 unchanged attributes hidden)
}
# aws_lambda_event_source_mapping.reprocess_submission will be updated in-place
~ resource "aws_lambda_event_source_mapping" "reprocess_submission" {
~ function_name = "arn:aws:lambda:ca-central-1:957818836222:function:Reliability" -> (known after apply)
id = "da835a8c-6843-42f8-8509-6955dab673f1"
# (17 unchanged attributes hidden)
}
# aws_lambda_event_source_mapping.vault_updated_item_stream will be updated in-place
~ resource "aws_lambda_event_source_mapping" "vault_updated_item_stream" {
~ function_name = "arn:aws:lambda:ca-central-1:957818836222:function:Vault_Data_Integrity_Check" -> (known after apply)
id = "8ea9dcb0-b362-47a1-8174-88f364ff034a"
# (19 unchanged attributes hidden)
# (2 unchanged blocks hidden)
}
# aws_lambda_function.audit_logs must be replaced
-/+ resource "aws_lambda_function" "audit_logs" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs" -> (known after apply)
~ function_name = "Audit_Logs" -> "audit-logs" # forces replacement
- handler = "audit_logs.handler" -> null
~ id = "Audit_Logs" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs/invocations" -> (known after apply)
~ last_modified = "2024-03-19T14:40:47.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "audit_logs_code" -> null
- s3_object_version = "f_BzlZGp3EIHK9A_wAhInHPwzcXp2YLb" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "8XJrXQPGK78QNXqkYizyGlH5uM+xYA/x57QzSc/sbKw=" -> (known after apply)
~ source_code_size = 4114773 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.audit_logs_archiver must be replaced
-/+ resource "aws_lambda_function" "audit_logs_archiver" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs_Archiver" -> (known after apply)
~ function_name = "Audit_Logs_Archiver" -> "audit-logs-archiver" # forces replacement
- handler = "audit_logs_archiver.handler" -> null
~ id = "Audit_Logs_Archiver" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs_Archiver/invocations" -> (known after apply)
~ last_modified = "2024-02-27T16:47:10.032+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs_Archiver:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Audit_Logs_Archiver:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "audit_logs_archiver_code" -> null
- s3_object_version = "DhF3gQ_URRoNmSMI2xUH2ZMEKTiFYs8d" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "j21QkAUTlKxkmkad5xW89Zgl6fwIQ54MWvLhLAnhwdI=" -> (known after apply)
~ source_code_size = 4774980 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.form_archiver must be replaced
-/+ resource "aws_lambda_function" "form_archiver" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Archive_Form_Templates" -> (known after apply)
~ function_name = "Archive_Form_Templates" -> "form-archiver" # forces replacement
- handler = "form_archiver.handler" -> null
~ id = "Archive_Form_Templates" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Archive_Form_Templates/invocations" -> (known after apply)
~ last_modified = "2024-04-16T14:11:54.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Archive_Form_Templates:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Archive_Form_Templates:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "form_archiver_code" -> null
- s3_object_version = "OXu4Z6SwziptV7LIM00eSMf_PIkNEqik" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "tZom8NvYkLTCiFBHAx0p97qloJ1ZcMMumoKxxhc4SWc=" -> (known after apply)
~ source_code_size = 4485536 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.nagware must be replaced
-/+ resource "aws_lambda_function" "nagware" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Nagware" -> (known after apply)
~ function_name = "Nagware" -> "nagware" # forces replacement
- handler = "nagware.handler" -> null
~ id = "Nagware" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Nagware/invocations" -> (known after apply)
~ last_modified = "2024-04-16T14:11:49.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Nagware:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Nagware:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "nagware_code" -> null
- s3_object_version = "8IGUIN3KdmHILOgdapJHBBoyjC6WHrhZ" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "ewsERJHdgUqXPuAunXW9Djvue3VCJbRmdbJySbEUXMY=" -> (known after apply)
~ source_code_size = 10578943 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.reliability must be replaced
-/+ resource "aws_lambda_function" "reliability" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Reliability" -> (known after apply)
~ function_name = "Reliability" -> "reliability" # forces replacement
- handler = "reliability.handler" -> null
~ id = "Reliability" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Reliability/invocations" -> (known after apply)
~ last_modified = "2024-04-23T14:47:55.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Reliability:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Reliability:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "reliability_code" -> null
- s3_object_version = "z3oy_T8ai487X.40NWODpN1ewcjAymmN" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "gyCSkTbBtROZbqEOQMsEWTd3X+JXF91xF4ufJrDBrys=" -> (known after apply)
~ source_code_size = 11933697 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.reliability_dlq_consumer must be replaced
-/+ resource "aws_lambda_function" "reliability_dlq_consumer" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Reliability_DLQ_Consumer" -> (known after apply)
~ function_name = "Reliability_DLQ_Consumer" -> "reliability-dlq-consumer" # forces replacement
- handler = "dead_letter_queue_consumer.handler" -> null
~ id = "Reliability_DLQ_Consumer" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Reliability_DLQ_Consumer/invocations" -> (known after apply)
~ last_modified = "2024-02-13T15:11:44.105+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Reliability_DLQ_Consumer:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Reliability_DLQ_Consumer:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "reliability_dlq_consumer_code" -> null
- s3_object_version = "2eQTRAlARSviv5DKxSJvaPNpvg0ZmKwm" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "F7WbeUnrxxXYZkj7tkJyJcFV6inBl3QWsV9AzLcvfB4=" -> (known after apply)
~ source_code_size = 4641394 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.response_archiver must be replaced
-/+ resource "aws_lambda_function" "response_archiver" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Response_Archiver" -> (known after apply)
~ function_name = "Response_Archiver" -> "response-archiver" # forces replacement
- handler = "response_archiver.handler" -> null
~ id = "Response_Archiver" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Response_Archiver/invocations" -> (known after apply)
~ last_modified = "2024-02-13T15:11:44.124+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Response_Archiver:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Response_Archiver:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "response_archiver_code" -> null
- s3_object_version = "Qo0cmKhunoREYbSMy1NrRUGXqm20PLeB" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "iCOPYEkuyPrXdcFRLr6qL6swUo/kXiUZTdHb0tWWuOE=" -> (known after apply)
~ source_code_size = 5847434 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.submission must be replaced
-/+ resource "aws_lambda_function" "submission" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Submission" -> (known after apply)
- handler = "submission.handler" -> null
~ id = "Submission" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Submission/invocations" -> (known after apply)
~ last_modified = "2024-03-19T14:40:49.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Submission:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Submission:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "submission_code" -> null
- s3_object_version = "Ki9.vSqhDu3OCBabYVJPzhbPTfYOlE1T" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "DJVk2STondW1jm6Vj61kIHKK8sQw/oCC/75SlBdG3b8=" -> (known after apply)
~ source_code_size = 5435903 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (8 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_function.vault_integrity must be replaced
-/+ resource "aws_lambda_function" "vault_integrity" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:Vault_Data_Integrity_Check" -> (known after apply)
- code_signing_config_arn = "arn:aws:lambda:ca-central-1:957818836222:code-signing-config:csc-0ea61cbb9c887afee" -> null
~ function_name = "Vault_Data_Integrity_Check" -> "vault-integrity" # forces replacement
- handler = "vault_data_integrity_check.handler" -> null
~ id = "Vault_Data_Integrity_Check" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Vault_Data_Integrity_Check/invocations" -> (known after apply)
~ last_modified = "2024-04-30T18:40:25.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:Vault_Data_Integrity_Check:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:Vault_Data_Integrity_Check:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "signed/9379790a-421e-415a-9c93-647db5900668" -> null
~ signing_job_arn = "arn:aws:signer:ca-central-1:957818836222:/signing-jobs/9379790a-421e-415a-9c93-647db5900668" -> (known after apply)
~ signing_profile_version_arn = "arn:aws:signer:ca-central-1:957818836222:/signing-profiles/lambda_signing_profile_20240125160945309900000001/qlihrOkB2U" -> (known after apply)
~ source_code_hash = "9lDCUtEgnDGaN0b7aU2yhDlM0DDumsUYZhbUsYDuAF4=" -> (known after apply)
~ source_code_size = 8238441 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- environment {
- variables = {
- "LOCALSTACK" = "false"
} -> null
}
- ephemeral_storage {
- size = 512 -> null
}
# (2 unchanged blocks hidden)
}
# aws_lambda_permission.allow_cloudwatch_to_run_archive_form_responses_lambda must be replaced
-/+ resource "aws_lambda_permission" "allow_cloudwatch_to_run_archive_form_responses_lambda" {
~ function_name = "Response_Archiver" -> "response-archiver" # forces replacement
~ id = "AllowExecutionFromCloudWatch" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.allow_cloudwatch_to_run_dead_letter_queue_consumer_lambda must be replaced
-/+ resource "aws_lambda_permission" "allow_cloudwatch_to_run_dead_letter_queue_consumer_lambda" {
~ function_name = "Reliability_DLQ_Consumer" -> "reliability-dlq-consumer" # forces replacement
~ id = "AllowExecutionFromCloudWatch" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.allow_cloudwatch_to_run_form_archiver_lambda must be replaced
-/+ resource "aws_lambda_permission" "allow_cloudwatch_to_run_form_archiver_lambda" {
~ function_name = "Archive_Form_Templates" -> "form-archiver" # forces replacement
~ id = "AllowExecutionFromCloudWatch" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.allow_cloudwatch_to_run_nagware_lambda must be replaced
-/+ resource "aws_lambda_permission" "allow_cloudwatch_to_run_nagware_lambda" {
~ function_name = "Nagware" -> "nagware" # forces replacement
~ id = "AllowExecutionFromCloudWatch" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.audit_logs_archiver must be replaced
-/+ resource "aws_lambda_permission" "audit_logs_archiver" {
~ function_name = "Audit_Logs_Archiver" -> "audit-logs-archiver" # forces replacement
~ id = "AllowExecutionFromCloudWatch" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_s3_object.audit_logs_archiver_code will be destroyed
# (because aws_s3_object.audit_logs_archiver_code is not in configuration)
- resource "aws_s3_object" "audit_logs_archiver_code" {
- bucket = "forms-production-lambda-code" -> null
- bucket_key_enabled = false -> null
- content_type = "application/octet-stream" -> null
- etag ... Show Conftest resultsWARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_event_rule.audit_logs_archiver_lambda_trigger"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_event_rule.form_archiver_lambda_trigger"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_event_rule.nagware_lambda_trigger"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_event_rule.reliability_dlq_lambda_trigger"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_event_rule.response_archiver_lambda_trigger"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.archive_form_templates"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.audit_logs"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.audit_logs_archiver"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.dead_letter_queue_consumer"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.nagware"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.reliability"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.response_archiver"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.submission"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.vault_integrity"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_dynamodb"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_kms"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_logging"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_rds"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_s3"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_secrets"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_sns"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_policy.lambda_sqs"]
WARN -... |
Production: alarms✅ Terraform Init: Plan: 32 to add, 1 to change, 33 to destroy Show summary
Show planResource actions are indicated with the following symbols:
+ create
~ update in-place
- destroy
-/+ destroy and then create replacement
Terraform will perform the following actions:
# aws_cloudwatch_log_subscription_filter.forms_app_log_stream must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "forms_app_log_stream" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-3008753258" -> (known after apply)
name = "forms_app_log_stream"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.forms_unhandled_error_steam must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "forms_unhandled_error_steam" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-3008753258" -> (known after apply)
name = "forms_unhandled_error_stream"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["audit_log"] will be destroyed
# (because key ["audit_log"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}" -> null
- id = "cwlsf-821307863" -> null
- log_group_name = "/aws/lambda/Audit_Logs" -> null
- name = "error_detection_in_audit_log_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["audit_logs"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Audit_Logs"
+ name = "error_detection_in_audit_logs_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["audit_logs_archiver"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2742612913" -> (known after apply)
name = "error_detection_in_audit_logs_archiver_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["dlq_consumer"] will be destroyed
# (because key ["dlq_consumer"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}" -> null
- id = "cwlsf-125968559" -> null
- log_group_name = "/aws/lambda/Reliability_DLQ_Consumer" -> null
- name = "error_detection_in_dlq_consumer_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["form_archiver"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Archive_Form_Templates"
+ name = "error_detection_in_form_archiver_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["nagware"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2378547274" -> (known after apply)
name = "error_detection_in_nagware_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["reliability"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2677299195" -> (known after apply)
name = "error_detection_in_reliability_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["reliability_dlq_consumer"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Reliability_DLQ_Consumer"
+ name = "error_detection_in_reliability_dlq_consumer_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["response_archiver"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-1985583210" -> (known after apply)
name = "error_detection_in_response_archiver_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["submission"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2956744385" -> (known after apply)
name = "error_detection_in_submission_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["template_archiver"] will be destroyed
# (because key ["template_archiver"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}" -> null
- id = "cwlsf-4036201582" -> null
- log_group_name = "/aws/lambda/Archive_Form_Templates" -> null
- name = "error_detection_in_template_archiver_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["vault_data_integrity_check"] will be destroyed
# (because key ["vault_data_integrity_check"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}" -> null
- id = "cwlsf-125604783" -> null
- log_group_name = "/aws/lambda/Vault_Data_Integrity_Check" -> null
- name = "error_detection_in_vault_data_integrity_check_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_error_detection["vault_integrity"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_error_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "{($.level = \"warn\") || ($.level = \"error\")}"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Vault_Data_Integrity_Check"
+ name = "error_detection_in_vault_integrity_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["audit_log"] will be destroyed
# (because key ["audit_log"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "Task timed out" -> null
- id = "cwlsf-821307863" -> null
- log_group_name = "/aws/lambda/Audit_Logs" -> null
- name = "timeout_detection_in_audit_log_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["audit_logs"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "Task timed out"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Audit_Logs"
+ name = "timeout_detection_in_audit_logs_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["audit_logs_archiver"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2742612913" -> (known after apply)
name = "timeout_detection_in_audit_logs_archiver_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["dlq_consumer"] will be destroyed
# (because key ["dlq_consumer"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "Task timed out" -> null
- id = "cwlsf-125968559" -> null
- log_group_name = "/aws/lambda/Reliability_DLQ_Consumer" -> null
- name = "timeout_detection_in_dlq_consumer_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["form_archiver"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "Task timed out"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Archive_Form_Templates"
+ name = "timeout_detection_in_form_archiver_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["nagware"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2378547274" -> (known after apply)
name = "timeout_detection_in_nagware_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["reliability"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2677299195" -> (known after apply)
name = "timeout_detection_in_reliability_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["reliability_dlq_consumer"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "Task timed out"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Reliability_DLQ_Consumer"
+ name = "timeout_detection_in_reliability_dlq_consumer_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["response_archiver"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-1985583210" -> (known after apply)
name = "timeout_detection_in_response_archiver_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["submission"] must be replaced
-/+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
~ destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
~ id = "cwlsf-2956744385" -> (known after apply)
name = "timeout_detection_in_submission_lambda_logs"
+ role_arn = (known after apply)
# (3 unchanged attributes hidden)
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["template_archiver"] will be destroyed
# (because key ["template_archiver"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "Task timed out" -> null
- id = "cwlsf-4036201582" -> null
- log_group_name = "/aws/lambda/Archive_Form_Templates" -> null
- name = "timeout_detection_in_template_archiver_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["vault_data_integrity_check"] will be destroyed
# (because key ["vault_data_integrity_check"] is not in for_each map)
- resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
- destination_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> null
- distribution = "ByLogStream" -> null
- filter_pattern = "Task timed out" -> null
- id = "cwlsf-125604783" -> null
- log_group_name = "/aws/lambda/Vault_Data_Integrity_Check" -> null
- name = "timeout_detection_in_vault_data_integrity_check_lambda_logs" -> null
}
# aws_cloudwatch_log_subscription_filter.lambda_timeout_detection["vault_integrity"] will be created
+ resource "aws_cloudwatch_log_subscription_filter" "lambda_timeout_detection" {
+ destination_arn = (known after apply)
+ distribution = "ByLogStream"
+ filter_pattern = "Task timed out"
+ id = (known after apply)
+ log_group_name = "/aws/lambda/Vault_Data_Integrity_Check"
+ name = "timeout_detection_in_vault_integrity_lambda_logs"
+ role_arn = (known after apply)
}
# aws_cloudwatch_metric_alarm.vault_data_integrity_check_lambda_iterator_age will be updated in-place
~ resource "aws_cloudwatch_metric_alarm" "vault_data_integrity_check_lambda_iterator_age" {
~ dimensions = {
~ "FunctionName" = "Vault_Data_Integrity_Check" -> "vault-integrity"
~ "Resource" = "Vault_Data_Integrity_Check" -> "vault-integrity"
}
id = "Vault data integrity check lambda iterator age"
tags = {}
# (17 unchanged attributes hidden)
}
# aws_lambda_function.notify_slack must be replaced
-/+ resource "aws_lambda_function" "notify_slack" {
~ architectures = [
- "x86_64",
] -> (known after apply)
~ arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" -> (known after apply)
~ function_name = "NotifySlack" -> "notify-slack" # forces replacement
- handler = "notify_slack.handler" -> null
~ id = "NotifySlack" -> (known after apply)
+ image_uri = ":latest"
~ invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack/invocations" -> (known after apply)
~ last_modified = "2024-04-16T14:14:06.000+0000" -> (known after apply)
- layers = [] -> null
~ package_type = "Zip" -> "Image" # forces replacement
~ qualified_arn = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack:$LATEST" -> (known after apply)
~ qualified_invoke_arn = "arn:aws:apigateway:ca-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack:$LATEST/invocations" -> (known after apply)
- runtime = "nodejs18.x" -> null
- s3_bucket = "forms-production-lambda-code" -> null
- s3_key = "notify_slack_code" -> null
- s3_object_version = "8oRf2BN4TYTL69XM0qOu2Dhp8BAz5aYR" -> null
+ signing_job_arn = (known after apply)
+ signing_profile_version_arn = (known after apply)
~ source_code_hash = "kbHJgDNOQodqCMI271CAcgHrZGTvsoUmV5UoyA6F7k8=" -> (known after apply)
~ source_code_size = 26171 -> (known after apply)
- tags = {} -> null
~ version = "$LATEST" -> (known after apply)
# (7 unchanged attributes hidden)
- ephemeral_storage {
- size = 512 -> null
}
# (3 unchanged blocks hidden)
}
# aws_lambda_permission.allow_cloudwatch_to_run_lambda must be replaced
-/+ resource "aws_lambda_permission" "allow_cloudwatch_to_run_lambda" {
~ function_name = "NotifySlack" -> "notify-slack" # forces replacement
~ id = "AllowExecutionFromCloudWatch" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.notify_slack_critical must be replaced
-/+ resource "aws_lambda_permission" "notify_slack_critical" {
~ function_name = "NotifySlack" -> "notify-slack" # forces replacement
~ id = "AllowExecutionFromSNSCriticalAlert" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.notify_slack_ok must be replaced
-/+ resource "aws_lambda_permission" "notify_slack_ok" {
~ function_name = "NotifySlack" -> "notify-slack" # forces replacement
~ id = "AllowExecutionFromSNSOkAlert" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.notify_slack_ok_us_east must be replaced
-/+ resource "aws_lambda_permission" "notify_slack_ok_us_east" {
~ function_name = "NotifySlack" -> "notify-slack" # forces replacement
~ id = "AllowExecutionFromSNSOkAlertUSEast" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.notify_slack_warning must be replaced
-/+ resource "aws_lambda_permission" "notify_slack_warning" {
~ function_name = "NotifySlack" -> "notify-slack" # forces replacement
~ id = "AllowExecutionFromSNSWarningAlert" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_lambda_permission.notify_slack_warning_us_east must be replaced
-/+ resource "aws_lambda_permission" "notify_slack_warning_us_east" {
~ function_name = "NotifySlack" -> "notify-slack" # forces replacement
~ id = "AllowExecutionFromSNSWarningAlertUSEast" -> (known after apply)
+ statement_id_prefix = (known after apply)
# (4 unchanged attributes hidden)
}
# aws_s3_object.notify_slack_code will be destroyed
# (because aws_s3_object.notify_slack_code is not in configuration)
- resource "aws_s3_object" "notify_slack_code" {
- bucket = "forms-production-lambda-code" -> null
- bucket_key_enabled = false -> null
- content_type = "application/octet-stream" -> null
- etag = "212705c038f15626255809231f4906e7" -> null
- force_destroy = false -> null
- id = "notify_slack_code" -> null
- key = "notify_slack_code" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/tmp/notify_slack_code.zip" -> null
- source_hash = "kbHJgDNOQodqCMI271CAcgHrZGTvsoUmV5UoyA6F7k8=" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "CostCentre" = "forms-platform-production"
- "Terraform" = "true"
} -> null
- version_id = "8oRf2BN4TYTL69XM0qOu2Dhp8BAz5aYR" -> null
}
# aws_sns_topic_subscription.topic_critical must be replaced
-/+ resource "aws_sns_topic_subscription" "topic_critical" {
~ arn = "arn:aws:sns:ca-central-1:957818836222:alert-critical:94fb04b9-3391-4941-90d4-15b39abb25bd" -> (known after apply)
~ confirmation_was_authenticated = true -> (known after apply)
~ endpoint = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
+ filter_policy_scope = (known after apply)
~ id = "arn:aws:sns:ca-central-1:957818836222:alert-critical:94fb04b9-3391-4941-90d4-15b39abb25bd" -> (known after apply)
~ owner_id = "957818836222" -> (known after apply)
~ pending_confirmation = false -> (known after apply)
# (5 unchanged attributes hidden)
}
# aws_sns_topic_subscription.topic_ok must be replaced
-/+ resource "aws_sns_topic_subscription" "topic_ok" {
~ arn = "arn:aws:sns:ca-central-1:957818836222:alert-ok:ee918b25-14ac-45de-af1a-7316725ab8fe" -> (known after apply)
~ confirmation_was_authenticated = true -> (known after apply)
~ endpoint = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
+ filter_policy_scope = (known after apply)
~ id = "arn:aws:sns:ca-central-1:957818836222:alert-ok:ee918b25-14ac-45de-af1a-7316725ab8fe" -> (known after apply)
~ owner_id = "957818836222" -> (known after apply)
~ pending_confirmation = false -> (known after apply)
# (5 unchanged attributes hidden)
}
# aws_sns_topic_subscription.topic_ok_us_east must be replaced
-/+ resource "aws_sns_topic_subscription" "topic_ok_us_east" {
~ arn = "arn:aws:sns:us-east-1:957818836222:alert-ok:ca8689d1-31b5-4754-bab6-62b19e7ee40e" -> (known after apply)
~ confirmation_was_authenticated = true -> (known after apply)
~ endpoint = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
+ filter_policy_scope = (known after apply)
~ id = "arn:aws:sns:us-east-1:957818836222:alert-ok:ca8689d1-31b5-4754-bab6-62b19e7ee40e" -> (known after apply)
~ owner_id = "957818836222" -> (known after apply)
~ pending_confirmation = false -> (known after apply)
# (5 unchanged attributes hidden)
}
# aws_sns_topic_subscription.topic_warning must be replaced
-/+ resource "aws_sns_topic_subscription" "topic_warning" {
~ arn = "arn:aws:sns:ca-central-1:957818836222:alert-warning:b6c7ad37-8662-4dee-9f83-a8802e87dc42" -> (known after apply)
~ confirmation_was_authenticated = true -> (known after apply)
~ endpoint = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
+ filter_policy_scope = (known after apply)
~ id = "arn:aws:sns:ca-central-1:957818836222:alert-warning:b6c7ad37-8662-4dee-9f83-a8802e87dc42" -> (known after apply)
~ owner_id = "957818836222" -> (known after apply)
~ pending_confirmation = false -> (known after apply)
# (5 unchanged attributes hidden)
}
# aws_sns_topic_subscription.topic_warning_us_east must be replaced
-/+ resource "aws_sns_topic_subscription" "topic_warning_us_east" {
~ arn = "arn:aws:sns:us-east-1:957818836222:alert-warning:dcd0dd15-ba3d-4258-9744-b6307bd8ebc8" -> (known after apply)
~ confirmation_was_authenticated = true -> (known after apply)
~ endpoint = "arn:aws:lambda:ca-central-1:957818836222:function:NotifySlack" # forces replacement -> (known after apply) # forces replacement
+ filter_policy_scope = (known after apply)
~ id = "arn:aws:sns:us-east-1:957818836222:alert-warning:dcd0dd15-ba3d-4258-9744-b6307bd8ebc8" -> (known after apply)
~ owner_id = "957818836222" -> (known after apply)
~ pending_confirmation = false -> (known after apply)
# (5 unchanged attributes hidden)
}
Plan: 32 to add, 1 to change, 33 to destroy.
Warning: Argument is deprecated
with module.athena_bucket.aws_s3_bucket.this,
on .terraform/modules/athena_bucket/S3/main.tf line 8, in resource "aws_s3_bucket" "this":
8: resource "aws_s3_bucket" "this" {
Use the aws_s3_bucket_server_side_encryption_configuration resource instead
(and 3 more similar warnings elsewhere)
─────────────────────────────────────────────────────────────────────────────
Saved the plan to: plan.tfplan
To perform exactly these actions, run the following command to apply:
terraform apply "plan.tfplan"
Show Conftest resultsWARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_event_rule.codedeploy_sns"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_log_group.notify_slack"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.ELB_5xx_error_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.UnHealthyHostCount-TargetGroup1"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.UnHealthyHostCount-TargetGroup2"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.alb_ddos"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.audit_log_dead_letter_queue_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.cognito_login_outside_canada_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.cognito_signin_exceeded"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.ddos_detected_forms_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.ddos_detected_route53_warn[0]"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.forms_cpu_utilization_high_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.forms_memory_utilization_high_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.reliability_dead_letter_queue_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.response_time_warn"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.route53_ddos[0]"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.twoFa_verification_exceeded"]
WARN - plan.json - main - Missing Common Tags: ["aws_cloudwatch_metric_alarm.vault_data_integrity_check_lambda_iterator_age"]
WARN - plan.json - main - Missing Common Tags: ["aws_iam_role.notify_slack_lambda"]
WARN - plan.json -... |
🤖 I have created a release beep boop
3.9.0 (2024-05-17)
Features
Bug Fixes
Miscellaneous Chores
Code Refactoring
This PR was generated with Release Please. See documentation.