def put_integration(client, module, rest_api_id, resource_id, http_method, integration):
method_integration = None
api_params = dict(
restApiId=rest_api_id,
resourceId=resource_id,
httpMethod=http_method,
type=integration['type'].upper(),
)
if 'httpMethod' in integration:
api_params['integrationHttpMethod'] = integration['httpMethod']
for optional_params in ('uri', 'credentials', 'requestParameters', 'requestTemplates', 'cacheNameSpace'):
if optional_params in integration:
api_params[optional_params] = integration[optional_params]
if 'cacheKeyParameters' in integration:
cache_key_parameters = []
for parameter in integration['cacheKeyParameters']:
cache_key_parameters.append('method.request.querystring.{0}'.format(parameter.split('.')[-1]))
if cache_key_parameters:
api_params['cacheKeyParameters'] = cache_key_parameters
try:
method_integration = client.put_integration(**api_params)
except (ClientError, ParamValidationError, MissingParametersError) as e:
module.fail_json(msg="Error creating integration for method {0} rid: {1}: {2}".format(http_method, resource_id, e))
return method_integration
评论列表
文章目录