示例#1
0
def _subscribe_lambda_to_sns_topic(lambda_arn, topic_name, region):
    topic_arn = CONN.sns(region).subscribe(lambda_arn, topic_name, 'lambda')
    try:
        CONN.lambda_conn().add_invocation_permission(lambda_arn,
                                                     'sns.amazonaws.com',
                                                     source_arn=topic_arn)
    except ClientError:
        _LOG.warn('The final access policy size for lambda {} is reached. '
                  'The limit is 20480 bytes. '
                  'Invocation permission was not added.'.format(lambda_arn))
            "status_code": "503",
            "error_regex": ".*ERROR_CODE\\\": 503.*",
            'response_templates': {
                'application/json': '#set ($errorMessageObj = $util.parseJson('
                                    '$input.path(\'$.errorMessage\')))'
                                    '{"message" : "$errorMessageObj.message"}'
            }
        }
    ]
}

_CORS_HEADER_NAME = 'Access-Control-Allow-Origin'
_CORS_HEADER_VALUE = "'*'"

_API_GATEWAY_CONN = CONN.api_gateway()
_LAMBDA_CONN = CONN.lambda_conn()


def api_resource_identifier(name, output=None):
    if output:
        # api currently is not located in different regions
        # process only first object
        api_output = list(output.items())[0][1]
        # find id from the output
        return api_output['description']['id']
    # if output is not provided - try to get API by name
    # cause there is no another option
    return _API_GATEWAY_CONN.get_api_id(name)


def create_api_gateway(args):
示例#3
0
def _subscribe_lambda_to_sns_topic(lambda_arn, topic_name, region):
    topic_arn = CONN.sns(region).subscribe(lambda_arn, topic_name, 'lambda')
    CONN.lambda_conn().add_invocation_permission(lambda_arn,
                                                 'sns.amazonaws.com',
                                                 source_arn=topic_arn)