Tutorial: Jak rozwiązać problem z ID zasobów Terraform w usłudze Azure DevOps?
Mam coś dla tych, którzy borykają się z problemem z tworzeniem zasobów Terraform w usłudze Azure DevOps: „Zasób z podanym ID już istnieje”. Ostatnio wdrażałem prosty pipeline Terraform w Azure DevOps..
Zdawało mi się, że wszystko idzie jak z płatka – install, init, plan, apply. Proste kroki i formatki UI dla każdego parametru. Całość skonfigurowałem poprawnie. Kod na mojej lokalnej maszynie działał prawidłowo. Jednak w Azure DevOps pipeline odpalił bez problemów jedynie za pierwszym razem. Każda kolejna próba kończyła się tak samo. Błędem:
Error: The process ‘C:\hostedtoolcache\windows\terraform\1.0.8\x64\terraform.exe’ failed with exit code 1
A w logach:
Error: [0m[0m[1mA resource with the ID "/subscriptions/45197771-2d3e-4685-aaef-e96f62dd80b4/resourceGroups/tfexample-sample-rg" already exists -
to be managed via Terraform
this resource needs to be imported into the State.
Please see the resource documentation for "azurerm_resource_group"
for more information.[0m
Problemem był mój kod!
Zapomniałem o bloku backend! Dlatego na lokalnej maszynie kod działał.
Terraform zapisywał stan w lokalnym pliku terraform.tfstate (zgodnie z domyślnymi ustawieniami), ale w Azure DevOps parametry wpisane w UI były ignorowane i nie zwracały konkretnej informacji o błędzie. Z kolei terraform apply nie mógł znaleźć pliku ze stanem, więc za każdym razem tworzył zasób od nowa.
Rozwiązanie
Naprawiłem kod, dodając puste parametry. Tyle wystarczyło, by kod zaczął działać. Zwróć uwagę, że nie ma potrzeby podawania żadnych wartości.
P. S.
Post pochodzi z mojego osobistego bloga, który znajdziesz TUTAJ.
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Przed nami nowy rozdział! Chmurowisko dokonało połączenia z polskim Software Mind – firmą, która od 20 lat tworzy rozwiązania przyczyniające się do sukcesu organizacji z całego świata…
Grupa Dynamic Precision podjęła decyzję o unowocześnieniu swojej infrastruktury. Razem z Oracle Polska prowadzimy migrację aplikacji firmy do chmury OCI.
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Zapisz się do naszego newslettera i
bądź z chmurami na bieżąco!
z chmur Azure, AWS i GCP, z krótkimi opisami i linkami.