Closed IvanVlasic closed 2 years ago
Dodao sam opciju da se za neki stage lambda moze napraviti privatnom.
Kod kreiranja stagea generiram privatni i javni kljuc te lambda authorizer koji se dalje koriste za autorizaciju.
Ako korisnik u svom environment fajlu za neku funkciju stavi da je private
u njezinim requestima je potrebna autorizacija jwt tokenom.
Tu sam kratko bio zapeo na problemu da se u slucaju brisanja private
polja, tj prebacivanja apia u javni terraform bunio s greskom poput ove
Error: Provider produced inconsistent final plan
│
│ When expanding the plan for module.title-api.aws_api_gateway_deployment.dam_services_rest_api to include new values learned so far during apply, provider
│ "registry.terraform.io/hashicorp/aws" produced an invalid new value for .triggers["redeployment"]: was cty.StringVal("bb7cc004678be1cc91507b0d0824e63fceaaaa42"), but now
│ cty.StringVal("6e533493f10740ba9c06ad2024c78771efdea841").
│
│ This is a bug in the provider, which should be reported in the provider's own issue tracker.
Nasao sam dosta issuea na terraform githubu vezano uz ovo, npr ovo ili ovo.
Koliko vidim tu je opet neki problem sa aws eventual consistencyjem pa se ti hashevi za resurse iz nekog razloga krivo racunaju kada se nesto u triggeru za redeployment promjeni (u ovom slucaju ruta jer se mjenja polje za autorizaciju).
To sam rjesio tako da sam iz redeployment triggera maknuo sve rute i integracije i ostavio samo local.integrations
, to jest nas lokalni objekt preko kojeg kreiramo rute i integracije. Pretpostavka mi je da ce promjenom podataka u tom objektu doci i do promjena ruta i integracija pa ce biti potreban redeploy. To je rjesilo problem buduci da se vise ne koriste aws resursi za izracun hasha.
This is done, together with necessary documentation so I'm going to close the issue.
Adding new stage should also generate private and public key pair which can then be used for authorization on stage api.
User should have option to decide if routes should be private or public through environment configuration.