• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

509
Vistas
Cómo actualizar lambda@edge arn en la distribución frente a la nube usando cli

Me gustaría actualizar la distribución frente a la nube con la última función lambda@edge usando CLI.

Vi esta documentación https://docs.aws.amazon.com/cli/latest/reference/cloudfront/update-distribution.html

pero no pude averiguar cómo actualizar el lambda arn solamente.

alguien puede ayudar

about 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Aquí está el script, que está haciendo exactamente eso. Se implementa en base a la respuesta de @cloudbud. No hay comprobación de argumentos. Se ejecutaría así: ./script QF234ASD342FG my-lambda-at-edge-function us-east-1 . En mi caso, el tiempo de ejecución es inferior a 10 seg. Ver actualización-distribución para más detalles.

 #!/bin/bash set -xeuo pipefail export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin distribution_id="$1" function_name="$2" region="$3" readonly lambda_arn=$( aws lambda list-versions-by-function \ --function-name "$function_name" \ --region "$region" \ --query "max_by(Versions, &to_number(to_number(Version) || '0'))" \ | jq -r '.FunctionArn' ) readonly tmp1=$(mktemp) readonly tmp2=$(mktemp) aws cloudfront get-distribution-config \ --id "$distribution_id" \ > "$tmp1" readonly etag=$(jq -r '.ETag' < "$tmp1") cat "$tmp1" \ | jq '(.DistributionConfig.CacheBehaviors.Items[] | select(.PathPattern=="dist/sxf/*") | .LambdaFunctionAssociations.Items[] | select(.EventType=="origin-request") | .LambdaFunctionARN ) |= "'"$lambda_arn"'"' \ | jq '.DistributionConfig' \ > "$tmp2" # the dist config has to be in the file # and be referred in specific way. aws cloudfront update-distribution \ --id "$distribution_id" \ --distribution-config "file://$tmp2" \ --if-match "$etag" rm -f "$tmp1" "$tmp2"
about 3 years ago · Santiago Trujillo Denunciar

0

no pude averiguar cómo actualizar el arn lambda solamente.

El enlace que proporcionaste explica el proceso:

El proceso de actualización incluye obtener la configuración de distribución actual , actualizar el documento XML que se devuelve para realizar los cambios y luego enviar una solicitud UpdateDistribution para realizar las actualizaciones .

Esto significa que no puede simplemente actualizar lambda arn directamente. Tú tienes:

  1. Llame a get-distribution-config para obtener la configuración actual completa.

  2. Cambiar el lambda arn en los datos de configuración obtenidos.

  3. Cargue toda la nueva configuración usando update-distribution .

El proceso requiere atención adicional, que también se explica en los documentos bajo Advertencia :

Debe eliminar el parámetro ETag que se devuelve.

Se requieren campos adicionales cuando actualiza una distribución.

y más.

El proceso es ciertamente complejo . Por lo tanto, si puede, le recomendaría probar esto en alguna distribución de CloudFront de prueba/ficticia en lugar de hacerlo directamente en la versión de producción.

about 3 years ago · Santiago Trujillo Denunciar

0

Algo como esto:

 #!/bin/bash set -x TEMPDIR=$(mktemp -d) CONFIG=$(aws cloudfront get-distribution-config --id CGSKSKLSLSM) ETAG=$(echo "${CONFIG}" | jq -r '.ETag') echo "${CONFIG}" | jq '.DistributionConfig' > ${TEMPDIR}/orig.json echo "${CONFIG}" | jq '.DistributionConfig | .DefaultCacheBehavior.LambdaFunctionAssociations.Items[0].LambdaFunctionARN= "arn:aws:lambda:us-east-1:xxxxx:function:test-func:3"' > ${TEMPDIR}/updated.json aws cloudfront update-distribution --id CGSKSKLSLSM --distribution-config file://${TEMPDIR}/updated.json --if-match "${ETAG}"
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda