MCPcopy Index your code
hub / github.com/zappa/Zappa / rollback_lambda_function_version

Method rollback_lambda_function_version

zappa/core.py:1475–1511  ·  view source on GitHub ↗

Rollback the lambda function code 'versions_back' number of revisions. Returns the Function ARN.

(self, function_name, versions_back=1, publish=True)

Source from the content-addressed store, hash-verified

1473 return self.lambda_client.invoke(**invoke_kwargs)
1474
1475 def rollback_lambda_function_version(self, function_name, versions_back=1, publish=True):
1476 """
1477 Rollback the lambda function code 'versions_back' number of revisions.
1478 Returns the Function ARN.
1479 """
1480 response = self.lambda_client.list_versions_by_function(FunctionName=function_name)
1481
1482 # https://github.com/Miserlou/Zappa/pull/2192
1483 if (
1484 len(response.get("Versions", [])) > 1
1485 and "PackageType" in response["Versions"][-1]
1486 and response["Versions"][-1]["PackageType"] == "Image"
1487 ):
1488 raise NotImplementedError("Zappa's rollback functionality is not available for Docker based deployments")
1489
1490 # Take into account $LATEST
1491 if len(response["Versions"]) < versions_back + 1:
1492 logger.warning(f"We do not have {versions_back} revisions. Aborting")
1493 return False
1494
1495 revisions = [int(revision["Version"]) for revision in response["Versions"] if revision["Version"] != "$LATEST"]
1496 revisions.sort(reverse=True)
1497
1498 response = self.lambda_client.get_function(
1499 FunctionName="function:{}:{}".format(function_name, revisions[versions_back])
1500 )
1501 response = requests.get(response["Code"]["Location"])
1502
1503 if response.status_code != 200:
1504 logger.error(f"Failed to get version {versions_back} of {function_name} code")
1505 return False
1506
1507 response = self.lambda_client.update_function_code(
1508 FunctionName=function_name, ZipFile=response.content, Publish=publish
1509 ) # pragma: no cover
1510
1511 return response["FunctionArn"]
1512
1513 def wait_until_lambda_function_is_active(self, function_name):
1514 """

Calls

no outgoing calls