Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

260
Views
comando aws cli para suscribirse a un tema con filtros

Estoy tratando de escribir un comando aws cli de cuenta cruzada para suscribirme a un tema y crear un filtro para esa suscripción al mismo tiempo. A continuación se muestra cómo se ve mi comando.

 aws sns subscribe --topic-arn arn:aws:sns:region:accountId:my_topic --protocol sqs --notification-endpoint arn:aws:sqs:region:differentAccountId:my_sqs_queue --attributes "{'RawMessageDelivery': 'true', 'FilterPolicy': '{\"filter\": [\"value1\", \"value2\"]}'}"

Recibo el siguiente error cuando ejecuto esto.

 Unknown options: --attributes, [\value1\,, \value2\]}'}, {'RawMessageDelivery': 'true', 'FilterPolicy': '{" filter\:

Tengo acceso al acceso de administrador a las dos cuentas de AWS. ¿Alguna sugerencia sobre lo que estoy haciendo mal?

EDITAR: Estoy ejecutando esto en el terminal PowerShell de VS Code en Windows.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Probablemente haya una manera más fácil de hacerlo (por ejemplo, usando --cli-input-json y proporcionando JSON en un archivo), pero lo hice funcionar:

 aws sns subscribe \ --topic-arn arn:aws:sns:region:accountId:my_topic \ --protocol sqs \ --notification-endpoint arn:aws:sqs:region:differentAccountId:my_sqs_queue \ --attributes '{\"RawMessageDelivery\": \"true\", \"FilterPolicy\": \"{\\\"filter\\\": [\\\"value1\\\", \\\"value2\\\"]}\"}'

El problema era el JSON incluido en una cadena, que necesitaba que \" se escapara como \\\" .

over 4 years ago · Santiago Trujillo Report

0

Este repositorio de Github tiene un ejemplo: https://github.com/Haple/sns-sqs-subscribe

 #!/bin/sh # SETUP queue_arn=$(awslocal sqs create-queue --queue-name test_queue --output text) echo "Queue ARN: $queue_arn" topic_arn=$(awslocal sns create-topic --name test_topic --output text) echo "Topic ARN: $topic_arn" subscription_arn=$(awslocal sns subscribe \ --topic-arn "$topic_arn" \ --protocol sqs \ --notification-endpoint "$queue_arn" \ --output text) echo "Subscription ARN: $subscription_arn" awslocal sns set-subscription-attributes \ --subscription-arn "$subscription_arn" \ --attribute-name FilterPolicy \ --attribute-value "{ \"EVENT_TYPE\": [\"SUCCESS\"] }" # TEST awslocal sns publish \ --topic-arn "$topic_arn" \ --message "SUCCESS PAYLOAD (SHOULD GO TO THE QUEUE)" \ --message-attributes '{"EVENT_TYPE" : { "DataType":"String", "StringValue":"SUCCESS"}}' awslocal sns publish \ --topic-arn "$topic_arn" \ --message "ERROR PAYLOAD (SHOULD NOT GO TO THE QUEUE)" \ --message-attributes '{"EVENT_TYPE" : { "DataType":"String", "StringValue":"ERROR"}}' awslocal sqs get-queue-attributes \ --queue-url http://localhost:4576/queue/test_queue \ --attribute-names All

over 4 years ago · Santiago Trujillo Report

0

El proceso general en las respuestas anteriores está bien, pero hay un gran problema:

No sé por qué nadie menciona esto, pero todo no funciona si no configura correctamente el documento de política de cola de SQS .

El ejemplo de github no lo hace y, por alguna razón, la documentación de AWS ni siquiera lo menciona.

Consulte esta pregunta: Establecer documento de política de SQS con AWS CLI

Perdí un par de días resolviendo este problema. Así que espero que ayude.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!