Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

372
Visualizações
AWS lambda: ningún módulo llamado 'cfnresponse'

He implementado un AWS lambda que contiene:

 import json import boto3 import cfnresponse import urllib.request from botocore.exceptions import ClientError def lambda_handler(event, context): ... cfnresponse.send(event, context, status, responseData, "CustomResourcePhysicalID")

Traté de obtener los valores de cfnresponse en mis formaciones en la nube:

 Resources: API: Type: Custom::API Version: '1.0' Properties: ServiceToken: arn:aws:lambda:eu-west-1:1234567891011:function:getCountry Outputs: Status: Value: !GetAtt API.Data

Ahora el cfn está atascado y recibí el error:

 Unable to import module 'lambda_function': No module named 'cfnresponse'

¿Qué estoy haciendo mal? Parece la manera de hacerlo cuando reviso los documentos .

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Cfnresponse solo está disponible en lambda de forma predeterminada con python 2.7. Probablemente estés usando 3.6.

over 4 years ago · Santiago Trujillo Relatório

0

¿Especificó el código fuente de su función en ZipFile ? Si especifica un archivo zip real, ese módulo no se incluirá.

Cuando utiliza la propiedad ZipFile para especificar el código fuente de su función y esa función interactúa con un recurso personalizado de AWS CloudFormation, puede cargar el módulo cfn-response para enviar respuestas a esos recursos. El módulo contiene un método de envío, que envía un objeto de respuesta a un recurso personalizado a través de una URL prefirmada de Amazon S3 (ResponseURL).

Si necesita usar un archivo zip real, o esto no funciona por alguna otra razón, puede incluir el módulo usted mismo. Su código fuente está disponible en el enlace que proporcionó. Para Python 3 es:

 # Copyright 2016 Amazon Web Services, Inc. or its affiliates. All Rights Reserved. # This file is licensed to you under the AWS Customer Agreement (the "License"). # You may not use this file except in compliance with the License. # A copy of the License is located at http://aws.amazon.com/agreement/ . # This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. # See the License for the specific language governing permissions and limitations under the License. from botocore.vendored import requests import json SUCCESS = "SUCCESS" FAILED = "FAILED" def send(event, context, responseStatus, responseData, physicalResourceId=None, noEcho=False): responseUrl = event['ResponseURL'] print(responseUrl) responseBody = {} responseBody['Status'] = responseStatus responseBody['Reason'] = 'See the details in CloudWatch Log Stream: ' + context.log_stream_name responseBody['PhysicalResourceId'] = physicalResourceId or context.log_stream_name responseBody['StackId'] = event['StackId'] responseBody['RequestId'] = event['RequestId'] responseBody['LogicalResourceId'] = event['LogicalResourceId'] responseBody['NoEcho'] = noEcho responseBody['Data'] = responseData json_responseBody = json.dumps(responseBody) print("Response body:\n" + json_responseBody) headers = { 'content-type' : '', 'content-length' : str(len(json_responseBody)) } try: response = requests.put(responseUrl, data=json_responseBody, headers=headers) print("Status code: " + response.reason) except Exception as e: print("send(..) failed executing requests.put(..): " + str(e))
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda