Sådan får du en EC2 Windows-maskinens instans-id til en batch-variabel

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en batchfil, som jeg gerne vil køre ved opstart af en EC2 Windows AMI. Programmet, jeg gerne vil køre fra den batchfil, tager EC2-maskinens instans-id som en parameter. Hvad er den nemmeste måde at få den Instance ID på som et argument til det pågældende program?


Fra Amazonas dokumentation om emnet ser jeg, at du 'skal udstede en WGET til en bestemt webadresse og analysere svaret. Så en alternativ måde at formulere dette spørgsmål på kan være 'Hvordan sender jeg indholdet af en HTTP-anmodning til et program som et argument i en Windows-batchfil' [4]


I pseudokode er dette det, jeg gerne vil gøre:


set ID = GET http://169.254.169.254/2008-08-08/meta-data/instance-id
myprogram.exe /instanceID=\%ID\%


Eventuelle forslag til, hvordan jeg kan fortsætte?

Bedste reference


Du kan ikke åbne webadresser direkte i en batchfil. Du kan helt sikkert bruge wget eller lignende til at hente indholdet af denne webadresse. Så får du enten en fil (hvis indhold du kan tildele til en miljøvariabel [[se for eksempel Set=log.txt i batch]]) eller du får output fra programmet. I så fald kan du pakke det ind i ]]


for /f "usebackq delims=" \%\%x in (`print\_contents\_of\_url http://169.254.169.254/2008-08-08/meta-data/instance-id`) do set ID=\%\%x


som ville sætte \%ID\% til serverresponsen på den webadresse [[forudsat at programmet gør, hvad jeg hedder det]]).


I begge tilfælde skal du have et særskilt program til at tale HTTP.