Mam kilka instancji Google Compute Engine i ustawiono dla nich metadane instancji, przy założeniu, że są one dostępne w samej instancji jako zmienna środowiskowa, ale nie są wyświetlane. Następnie przeczytałem here, że muszę wysłać zapytanie do serwera metadanych o te dane, ale to po prostu zwraca 403 nieautoryzowane po uruchomieniu z samej instancji. Czy istnieje sposób na dostęp do metadanych jako zmiennych środowiskowych?Zmienne środowiskowe instancji
9
A
Odpowiedz
15
To może być warte studiowania Metadata querying nieco więcej, ale wydaje mi się, że próbujesz uzyskać zwyczaj metadanych, który jest w niej wynikający nie zostanie znaleziony. Upewnij się, że używasz katalogu attributes
, aby uzyskać dostęp do niestandardowych metadanych.
Na przykład, ten dostanie wbudowanej tags
metadanych:
curl "http://metadata.google.internal/computeMetadata/v1/instance/tags" \
-H "Metadata-Flavor: Google"
gdy ten dostanie swój własny metadanych dla atrybutu foo
:
curl "http://metadata.google.internal/computeMetadata/v1/<instance|project>/attributes/foo" \
-H "Metadata-Flavor: Google"
Ach, to ma sens. Miałem wrażenie, że metadane dodawane do projektu są automatycznie ustawiane w instancji maszyny wirtualnej jako zmienne środowiskowe, ale wygląda na to, że muszę je pobrać samodzielnie. Myślę, że mogłem pomylić GCE z AWS, gdzie tak się dzieje. – regretoverflow
Mogłeś pomyśleć, że ponieważ niektóre meta-dane faktycznie DOES są ładowane do instancji jako zmienna środowiskowa, a niektóre inne faktycznie ładują się do plików. Jeśli chcesz, możesz utworzyć skrypt startowy, a także zadanie cron, które pobiera wszystkie meta-dane według klucza => wartość i ustawia zmienne środowiskowe w ten sam sposób, ale niektóre metadane są znacznie większe niż standardowe Zmienna środowiskowa :) –