Estou trabalhando com o script abaixo, recebendo um erro de sintaxe porque não foi possível buscar credenciais do gerenciador de segredos. "username":"Comando AWS CLI de chave de acesso que inseri", "password":"Comando AWS CLI de chave secreta que inseri". Ótimo se alguém puder ajudar
#!/bin/bash
# Send the POST request and capture the response
response=$(curl -k \
-H "Content-Type: application/json" \
-X POST \
-d \
'{
"username":"'aws secretsmanager get-secret-value --region ap-south-1 --secret-id poc | jq --raw-output '.SecretString' | jq -r '.Access_Key''",
"password":"'aws secretsmanager get-secret-value --region ap-south-1 --secret-id poc | jq --raw-output '.SecretString' | jq -r '.Secret_Key''"
}' \
https://<region>/api/v1/authenticate)
O que eu faria, usando o documento aqui do shell :
O
-X POST
não é necessário ao usar-d
.Se você dominar
jq
, talvez opte pela resposta @Kusalananda ou misture-as. Caso contrário, talvez seja mais facilmente reutilizável se você não for fluente emjq
.Você tem problemas ao citar seus dados de carga útil e esses pipelines de comando não são executados automaticamente.
Em vez disso, considere preparar primeiro o documento de carga JSON e depois chamar
curl
com os dados preparados:Isso requer apenas uma única invocação
aws
+jq
para obter as credenciais da AWS, poisjq
pode extrair vários dados em um objeto JSON de uma só vez. OSecretString
valor da chave é um objeto JSON incorporado, portanto usamosfromjson
para decodificá-lo najq
expressão antes de acessar os campos incorporados.