Я развертываю шаблон CloudFormation из этого поста в блоге. Мне пришлось обновить функции Lambda с Python 3.6 до 3.9, чтобы заставить его работать. Однако теперь я получаю следующее сообщение об ошибке:
> CloudFormation did not receive a response from your Custom Resource.
> Please check your logs for requestId
> [029f4ea5-cd25-4593-b1ee-d805dd30463f]. If you are using the Python
> cfn-response module, you may need to update your Lambda function code
> so that CloudFormation can attach the updated version.
Ниже приведен рассматриваемый лямбда-код — что значит обновить лямбда-функцию, «чтобы CloudFormation могла прикрепить обновленную версию»?
import util.cfnresponse
import boto3
import uuid
client = boto3.client('s3')
cfnresponse = util.cfnresponse
def lambda_handler(event, context):
response_data = {}
try:
if event["RequestType"] == "Create":
bucket_name = uuid.uuid4().hex+'-connect'
# response = client.create_bucket(
# Bucket=bucket_name,
# )
response_data["BucketName"] = bucket_name
cfnresponse.send(event, context, cfnresponse.SUCCESS, response_data)
cfnresponse.send(event, context, cfnresponse.SUCCESS, response_data)
except Exception as e:
print(e)
cfnresponse.send(event, context, cfnresponse.FAILED, response_data)
Насколько я могу судить, формат ответа соответствует текущей версии API модуля ответа?
библиотека cfnrespone изменилась и обновилась. Старые версии библиотеки используют библиотеку запросов. Этому CF больше 4 лет, поэтому, вероятно, он не работает из-за этого. Вы можете прочитать об обновлении последних строк в README здесь: https://github.com/gene1wood/cfnresponse