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

0

389
Vistas
¿Sintaxis correcta para actualizar la política de recursos de AWS API Gateway a través de la CLI?

Estoy intentando actualizar una política de recursos en mi instancia de API Gateway a través de la CLI y parece que no puedo encontrar la sintaxis correcta para el JSON. En la documentación dice usar "operaciones de parches" y, por lo que entiendo, necesita una cadena de JSON para la política. Probé JSON minimizado, JSON escapado, comillas simples, sin comillas, y nada parece funcionar. La documentación no tiene un ejemplo de JSON real en el campo de valor para las operaciones de parche, por lo que me siento un poco perdido.

He estado probando variaciones de este comando:

aws apigateway update-rest-api --rest-api-id abcde123 --patch-operations op=replace,path=/policy,value='{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":"*","Action":"execute-api:Invoke","Resource":"arn:aws:execute-api:region:000000000000:*"},{"Effect":"Deny","Principal":"*","Action":"execute-api:Invoke","Resource":"arn:aws:execute-api:region:000000000000:*","Condition":{"StringNotEquals":{"aws:SourceVpce":["vpce-123456789","vpce-987654321"]}}}]}'

Me sale un error cada vez que dice:

Error parsing parameter '--patch-operations': Expected: '=', received: '{' for input:

Documentación pertinente aquí .

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

0

El siguiente comando ha sido probado en mi entorno - (usando bash)

 aws apigateway update-rest-api --rest-api-id %REST_API_ID% --patch-operations op=replace,path=/policy,value='"{\"Version \":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource \":\"arn:aws:execute-api:region:000000000000:*\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Inv oke\",\"Resource\":\"arn:aws:execute-api:region:000000000000:*\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\" :[\"vpce-123456789\",\"vpce-987654321\"]}}}]}"' --region %REGION%

ingrese la descripción de la imagen aquí

La clave es convertir el objeto JSON en texto en cadena, he usado este sitio . Básicamente, pegue su JSON en el cuadro de texto de entrada y copie el texto en cadena en el comando AWS CLI.

Más información aquí .

about 3 years ago · Santiago Trujillo Denunciar

0

Aquí hay una respuesta para una situación en la que tiene una política en un archivo , por ejemplo, policy.json :

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:region:000000000000:*" }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:region:000000000000:*", "Condition": { "StringNotEquals": { "aws:SourceVpce": [ "vpce-123456789", "vpce-987654321" ] } } } ] }

Luego, usando jq , puedes encadenarlo :

 aws apigateway update-rest-api \ --rest-api-id <api-id> \ --patch-operations op=replace,path=/policy,value=$(jq tostring policy.json)
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