2014-04-29 13 views
9

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

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" 
+0

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

+1

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 :) –