Terraform: Index value required

2024-04-11

Operacje na terraform state to coś, czego raczej należy unikać, ale czasami coś tam trzeba zadziałać…

Polecenie

terraform state list

zwraca listę wszystkich zasobów którymi zarządza Terraform. Na tej liście w moim przypadku pojawił sie taki oto wpis:

module.net_conf.azurerm_private_endpoint.private_endpoint[„update_key”]

Ten oto wpis trzeba było usunąć. Zwykle wystarcza do tego polecenie terraform state rm, po którym podaje sie nazwę obiektu do usunięcia, o tak:

terraform state rm module.net_conf.azurerm_private_endpoint.private_endpoint["update_key"]

Niestety polecenie kończyło się brzydkim błędem:

│ Error: Index value required
│   on  line 1:
│  (source code not available)
│Index brackets must contain either a literal number or a literal string.

No jak to! Przecież w nawiasie jest „literal string”!

Przyczyna – problemy z interpretacja w linii komend cudzysłowa. Komendę oryginalnie uruchamiałem w powershell. Przeniosłem ją do cmd i delikatnie zmieniłem:

terraform state rm module.net_conf.azurerm_private_endpoint.private_endpoint[\"update_key\"]

Po tej zmianie, wszystko zadziałało!

By Rafał Kraik in Azure

AWS: Błąd połączenia do EC2 z Putty

2024-04-06

Podczas tworzenia instancji EC2 na AWS można wygenerować klucz pozwalający na połączenie się do EC2 za pomocą Putty. Niestety, przy takiej próbie połączenia można dostać też nieciekawy błąd: „Server Refused our key”

Poza sprawdzeniem standardowych rzeczy:

  • czy łączymy się do właściwego serwera
  • czy korzystamy z właściwego konta użytkownika
  • czy korzystamy z właściwego klucza – w sensie do właściwego serwera, ale też właściwego typu (Putty oczekuje PPK, a nie PEM).

można jeszcze sprawdzić:

  • czy połączenie konfigurujemy na adres IP czy na nazwę. Lepiej jest wskazywać na nazwę
  • w adresie można jednocześnie podać nazwę użytkownika i hasło wpisując
    username@server_address
    np.:
    ec2-user@<my.public.addres.name>
  • czy na komputerach jest właściwa data i czas
  • no i wreszcie czy mamy najnowszą wersję Putty.

U mnie pomogła właśnie ta ostatnia wskazówka. Putty było za stare 😉

By Rafał Kraik in AWS

Windows: Nie można odtworzyć MP4: Server execution failed

2024-03-11

Jeśli jesteś ofiarą błędu „Server execution failed”, to

  • otwórz Managera zadań (Ctrl+Shift+Esc),
  • przejdź na „szczegóły”
  • odszukaj procesu „Windows Media Player” i zakończ go

Jest szansa, że po tej akcji, pliki będą sie poprawnie odtwarzać 😉

By Rafał Kraik in Helpdesk

Azure: Jak skopiować plik na blob storage container za pomocą AZ CLI?

2024-02-21

Zacznijmy od tego, że się trzeba zalogować. Można to zrobić na różne sposoby, ale powiedzmy, że wykonamy polecenie:

az login

i dokończymy logowanie w przeglądarce.

Istotne jest, aby mieć odpowiednie uprawnienia. W przeciwnym razie dostaje się komunikat podobny do poniższego:

You do not have the required permissions needed to perform this operation.
Depending on your operation, you may need to be assigned one of the following roles:
„Storage Blob Data Owner”
„Storage Blob Data Contributor”
„Storage Blob Data Reader”
„Storage Queue Data Contributor”
„Storage Queue Data Reader”
„Storage Table Data Contributor”
„Storage Table Data Reader”

Jeśli dodasz sobie uprawnienia, bo były za niskie, to poczekaj chwilę przed kolejną próbą. Azure nie od razu widzi nadane uprawnienia. Dla pewności można sie nawet wylogować i zalogować ponownie. Polecenie do wylogowania to:

az logout

No i przechodzimy do esencji, czyli kopiowania pliku. Odpowiednia komenda to az storage blob copy start. Polecenie trochę długie, ale ma sens. Na początku az, czyli nazwa komendy. Potem storage, bo pracujemy ze storage. Blob, bo kopiowanie ma się odbyć na blob service, dalej copy, bo chcemy przekopiować plik i ostatecznie start, bo to polecenie jest asynchroniczne – komenda się wykona, a kopiowanie może nadal trwać w tle. Dodatkowe parametry do przekazania to:

  • –destination-blob <filename> – określa nazwę, pod jaką plik ma się pojawić na blobie
  • –destination-container <containername> – określa nazwę kontenera, do którego plik ma być przesłany
  • –account-name <storageaccountname> – tutaj podaj krótką nazwę storage account. Nie trzeba podawać długiej nazwy, bo Azure już wie, że chodzi o blob service, a krótka nazwa i tak musi być unikalna globalnie w skali całego świata
  • –source-uri <uri> – określa adres źródłowy, pod jakim znajduje się plik do przekopiowania
  • –authmode login – mówi, że żądanie ma być uwierzytelnione w oparciu o EntraID – właśnie dlatego ten przykład zaczął się od zalogowania do Azure

Oto przykład pełnej komendy, która „kradnie” plik z wikipedii i umieszcza na twoim storage account

az storage blob copy start --destination-blob comp1.jpg --destination-container test_container --account-name stoacc7635442 --source-uri https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/IMac.jpg/330px-IMac.jpg --auth-mode login
By Rafał Kraik in Azure

Aktualności: Kurs: SQL Server #5 – Procedury, Triggery i Funkcje

2024-02-17

Znajomość zapytań w pracy z SQL Server to już bardzo dużo, ale jeszcze więcej można osiągnąć znając procedury, triggery i funkcje. Dlaczego?

  • Procedury są efektywniejsze, bezpieczniejsze, pozwalają zapisać w bazie danych oprócz samych rekordów również logikę, która decyduje o tym, jak dane mają być przetwarzane
  • Dzięki parametrom procedury i funkcje mogą wykonywać różne operacje, w zależności od tego jak zostały uruchomione
  • Triggery pozwalają z kolei na wykonywanie rzeczy, które inaczej byłyby niemożliwe do zrobienia: propagacja danych, aktualizacja widoków, kontrola danych – na wyższym logicznym poziomie itp.

Znajomość SQL Server przyda się nie tylko programistom i administratorom SQL, ale też analitykom danych i inżynierom Data Science.

Sporą porcję wiedzy właśnie na ten temat znajdziesz na kursie SQL Server #5: Procedury, triggery i funkcje, dostępnym na Udemy. Kurs zawiera kilka godzin materiału video, podzielonego na przyjemne kilkuminutowe lekcje, podręcznik PDF z notatkami do każdej lekcji, zadaniami do rozwiązania, propozycjami rozwiązań i repozytorium kodu na GitHub. Aktualne kody promocyjne znajdziesz na stronie www.kursyonline24.eu

By Rafał Kraik in Aktualności

Python: Sprawdzenie wersji modułu z Jupyter Notebook

2024-01-22

Praca z Jupyter Notebook daje fajną izolację od tego co dzieje sie na poziomie systemu operacyjnego. Co jednak zrobić, kiedy chcesz dowiedzieć się z jaką wersją modułu lub pythona pracujesz? Prosto:

Żeby sprawdzić numer wersji Pythona użyj:

import sys
sys.version_inf
o

Żeby sprawdzić numer wersji modułu skorzystaj z :

import pandas as pd
pd.version

By Rafał Kraik in Python

Aktualizacja KB5034441: Wystąpiły problemy… ponów próbę później

2024-01-22

Aktualizacja KB5034441 na Windows 10 może kończyć się błędem jeśli partycja recovery jest zbyt mała (np. rozmiar 445 był zbyt mały, ale już 799 jest ok).

Poradnik opisujący, jak zmienić rozmiar partycji dodając do niej 250 MB znajduje się tutaj i zadziałał dla mnie idealnie:

KB5028997: Instrukcje ręcznej zmiany rozmiaru partycji w celu zainstalowania aktualizacji WinRE – Pomoc techniczna firmy Microsoft

Oto, jak wyglądało wykonanie wszystkich kroków:

Czytaj dalej »

By Rafał Kraik in Helpdesk, SQL