Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

229
Visualizações
Creación de conjuntos de registros de Route53 a través de Shell Script

Como parte de mi script de shell, intento crear conjuntos de registros en AWS Route53. Sin embargo, al usar variables en aws cli dentro de mi script de shell para crear ese conjunto de registros, mis variables exportadas en el script de Shell no se pasan al comando aws cli .

Comando AWS CLI proporcionado por AWS:

 $ aws route53 change-resource-record-sets --hosted-zone-id 1234567890ABC \ --change-batch file:///path/to/record.json

No quiero crear un archivo json separado en mi computadora por razones de simplicidad, quiero tener todos mis comandos y variables dentro del script de shell.

 #!/bin/bash export TARGET_ENVIRONMENT=uat export BASE_ENVIRONMENT_DNS=abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com # Creates route 53 records based on env name aws route53 change-resource-record-sets --hosted-zone-id 1234567890ABC --change-batch '{ "Comment": "Testing creating a record set", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "$(TARGET_ENVIRONMENT).company.com", "Type": "CNAME", "TTL": 120, "ResourceRecords": [ { "Value": "$(BASE_ENVIRONMENT_DNS)" } ] } } ] }'

Este último comando está creando un conjunto de registros en AWS Route53 como:

 $(TARGET_ENVIRONMENT).company.com

con CNAME como

 $(BASE_ENVIRONMENT_DNS)

y NO realmente como quiero que sea, que es:

 uat.company.com

con el CNAME:

 abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com

¿Cómo puedo pasar las variables de entorno a mi comando aws cli dentro del script?

Cualquier ayuda será muy apreciada.

¡Gracias!

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Las variables no se expanden entre comillas simples.

Si cierra las comillas simples antes de la expansión de la variable y luego las vuelve a abrir inmediatamente después, debería producir el efecto deseado. Es posible que necesite o no envolver la variable entre comillas dobles para que se expanda.

 #!/bin/bash ENV=uat DNS=abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com # Creates route 53 records based on env name aws route53 change-resource-record-sets \ --hosted-zone-id 1234567890ABC \ --change-batch ' { "Comment": "Testing creating a record set" ,"Changes": [{ "Action" : "CREATE" ,"ResourceRecordSet" : { "Name" : "'" $ENV "'.company.com" ,"Type" : "CNAME" ,"TTL" : 120 ,"ResourceRecords" : [{ "Value" : "'" $DNS "'" }] } }] } '
over 4 years ago · Santiago Trujillo Relatório

0

También puede aprovechar la sustitución de procesos para mantener el formato JSON:

 #!/bin/bash export TARGET_ENVIRONMENT=uat export BASE_ENVIRONMENT_DNS=abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com # Creates route 53 records based on env name aws route53 change-resource-record-sets --hosted-zone-id 1234567890ABC --change-batch file://<(cat << EOF { "Comment": "Testing creating a record set", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "$(TARGET_ENVIRONMENT).company.com", "Type": "CNAME", "TTL": 120, "ResourceRecords": [ { "Value": "$(BASE_ENVIRONMENT_DNS)" } ] } } ] } EOF )
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda