missing from aws arn amazon-web-services aws-api-gateway amazon-cloudformation

amazon web services - from - Cómo integrar API Gateway con SQS



message missing authentication token (1)

Al igual que en el título. Intento integrar el método API Gateway con un SQS usando la formación de nubes. Lo que me falta es el URI correcto para el SQS. Si alguno de ustedes ya lo hizo, ¿cómo debería ser el URI?

Se me ocurrió algo así, pero no tengo idea de dónde poner el SQS ARN

"arn:aws:apigateway:${AWS::Region}:sqs:action/SendMessage"

Aquí está la configuración completa del método:

PostMethod: Type: "AWS::ApiGateway::Method" Properties: ApiKeyRequired: "true" HttpMethod: "POST" ResourceId: !Ref "SomeResource" RestApiId: !Ref "SomeRestApi" Integration: IntegrationHttpMethod: "POST" IntegrationResponses: - StatusCode: 200 Type: "AWS" Uri: "arn:aws:apigateway:${AWS::Region}:sqs:action/SendMessage"

Y aquí hay un ejemplo de URI si se integra con una función lambda:

arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:function_name/invocations -


Para responder mi propia pregunta. Aquí se explica cómo integra SQS como un proxy de servicio en la puerta de enlace API:

PostMethod: Type: "AWS::ApiGateway::Method" Properties: AuthorizationType: "NONE" ApiKeyRequired: "true" HttpMethod: "POST" ResourceId: !Ref "SomeResource" RestApiId: !Ref "RestApi" MethodResponses: - StatusCode: 200 Integration: Credentials: !GetAtt "RestApiRole.Arn" IntegrationHttpMethod: "POST" IntegrationResponses: - StatusCode: 200 Type: "AWS" Uri: !Sub "arn:aws:apigateway:${AWS::Region}:sqs:action/SendMessage" RequestParameters: integration.request.querystring.QueueUrl: !Sub "''${SomeQueue}''" integration.request.querystring.MessageBody: "method.request.body"

Finalmente encontré todas las respuestas a mis preguntas en diversos documentos. RTFM, supongo.

EDITAR:

y aquí el código para RestApiRole:

RestApiRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Action: - "sts:AssumeRole" Principal: Service: - "apigateway.amazonaws.com" Effect: "Allow" Policies: - PolicyName: "InvokeLambda" PolicyDocument: Version: "2012-10-17" Statement: - Action: - "lambda:InvokeFunction" Resource: !GetAtt "LambdaFunction.Arn" Effect: "Allow"