Ho installato l'interfaccia della riga di comando di AWS sul mio Windows 7, e ha funzionato immediatamente quando ho richiamato i comandi da una shell DOS.Come far funzionare l'interfaccia della riga di comando di AWS in cygwin
Ma il DOS, il linguaggio peggiore mai inventato, è orribile per qualsiasi script serio. Quindi, vorrei usare la CLI di AWS da bash via cygwin.
Nel mio caso, la CLI AWS installata è la versione di Windows. In linea di principio, questo non dovrebbe essere un problema perché i comandi di Windows sono eseguibili da cygwin. (cygwin includes your Windows environmental variables, come PATH, nel proprio ambiente.)
Purtroppo, quando ho cercato prima di eseguire un comando di AWS CLI da Cygwin/bash, ho ottenuto un errore:
$ aws s3 cp code.tgz s3://xyz/
upload failed: .\code.tgz to s3://xyz/code.tgz
Unable to locate credentials
Questo errore è probabile perché la CLI AWS sta cercando nella directory errata per il file credentials
. Su Windows, si aspetta che il file sia in %UserProfile%.aws
e in unix in ~/.aws
.
Un problema è che nella mia home directory ho creato un nuovo file chiamato config_credentials
che contiene un'unione dei contenuti dei file di quella directory config
e credentials
. Ho quindi creato un nuovo sistema di Windows env var denominato AWS_CONFIG_FILE
il cui valore è il percorso per config_credentials
. Successo: i comandi AWS CLI emessi da Cygwin ora funzionano.
Mi chiedo se esiste una soluzione migliore?
Sono curioso di sapere perché AWS CLI inizialmente non è riuscito a cercare nella directory home corretta per i file config
e credentials
. Mi chiedo anche se ci sia un modo per correggerlo (questo eliminerebbe la necessità per l'env var AWS_CONFIG_FILE
).
Sei interessato a PowerShell come alternativa? AWS ha creato una CLI nativa per PS: http://aws.amazon.com/powershell/ –
Solo come ultima risorsa. La mia azienda vuole limitare il numero di lingue che utilizziamo (continuità di manutenzione è un problema), e bash è usato in diversi posti (specialmente sui server) mentre PowerShell non è mai stato utilizzato. Ci dovrebbe essere un caso d'uso davvero avvincente per giustificare una nuova lingua. – HaroldFinch
Ah sì, DOS, quella lingua ben nota. –