示例#1
0
def connect_api_gateway_to_sqs(gateway_name,
                               stage_name,
                               queue_arn,
                               path,
                               region_name=None):
    resources = {}
    template = APIGATEWAY_SQS_DATA_INBOUND_TEMPLATE
    resource_path = path.replace('/', '')
    region_name = region_name or aws_stack.get_region()
    queue_name = aws_stack.sqs_queue_name(queue_arn)
    sqs_region = aws_stack.extract_region_from_arn(queue_arn) or region_name
    resources[resource_path] = [{
        'httpMethod':
        'POST',
        'authorizationType':
        'NONE',
        'integrations': [{
            'type':
            'AWS',
            'uri':
            'arn:aws:apigateway:%s:sqs:path/%s/%s' %
            (sqs_region, TEST_AWS_ACCOUNT_ID, queue_name),
            'requestTemplates': {
                'application/json': template
            },
        }]
    }]
    return aws_stack.create_api_gateway(name=gateway_name,
                                        resources=resources,
                                        stage_name=stage_name,
                                        region_name=region_name)
示例#2
0
def connect_api_gateway_to_sqs(gateway_name,
                               stage_name,
                               queue_arn,
                               path,
                               region_name=None):
    resources = {}
    template = APIGATEWAY_SQS_DATA_INBOUND_TEMPLATE
    resource_path = path.replace("/", "")
    region_name = region_name or aws_stack.get_region()
    queue_name = aws_stack.sqs_queue_name(queue_arn)
    sqs_region = aws_stack.extract_region_from_arn(queue_arn) or region_name
    resources[resource_path] = [{
        "httpMethod":
        "POST",
        "authorizationType":
        "NONE",
        "integrations": [{
            "type":
            "AWS",
            "uri":
            "arn:aws:apigateway:%s:sqs:path/%s/%s" %
            (sqs_region, TEST_AWS_ACCOUNT_ID, queue_name),
            "requestTemplates": {
                "application/json": template
            },
        }],
    }]
    return aws_stack.create_api_gateway(
        name=gateway_name,
        resources=resources,
        stage_name=stage_name,
        region_name=region_name,
    )