python - 如何在部署 lambda 函数之前删除 ptvsd 调试代码

标签 python aws-lambda aws-sam-cli

我正在使用 Python 和 AWS-SAM-CLI 开发无服务器应用程序。我正在使用 ptvsd 库调试我的函数。为了附加调试器,以下代码段必须在函数代码中。

ptvsd.enable_attach(address=('0.0.0.0', 5890), redirect_output=True)
ptvsd.wait_for_attach()

显然,在将函数部署到阶段或生产环境之前必须删除此代码。

有没有一种方法可以在打包/部署步骤中自动执行此操作,而不必在部署之前从每个函数中手动删除这段代码?

最佳答案

我会在您的本地环境中设置一个环境变量,比方说,DEV=true(此处的值并不重要),并将该代码包裹在一个 IF 语句中。

if "DEV" in os.environ:
    ptvsd.enable_attach(address=('0.0.0.0', 5890), redirect_output=True)
    ptvsd.wait_for_attach()

代码仍然存在,但除非环境变量存在,否则永远不会执行。

关于python - 如何在部署 lambda 函数之前删除 ptvsd 调试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56165863/

相关文章:

mysql - 使用node.js和aws lambda将Alexa技能连接到mysql数据库

amazon-web-services - 是否可以在控制台中编辑 AWS Lambda 层代码?

aws-cloudformation - GitHub 操作 : Deleting stack in AWS returns Waiter StackDeleteComplete failed: Max attempts exceeded

python - “SSL: CERTIFICATE_VERIFY_FAILED” 发布 MQTT、AWS IoT 时出错

aws-cloudformation - 如何在 AWS Serverless Function 中设置 Oauth 范围?

python - Google Big Query 中同步查询的作业配置

Python:在主内存不足时引发异常

python - 在 python 中,如何将 1 个或多个文件作为具有绝对路径的参数拖放到我的脚本中? (适用于 Windows、Linux 和 Mac)

python - Numpy 将整数连接到字符串

amazon-web-services - 如何根据 Cognito 用户池(或 DynamoDB)中的用户属性实现授权?