【发布时间】:2020-03-10 08:24:37
【问题描述】:
我在 Cloud9 中使用 Python AWS CDK,并且我正在部署一个简单的 Lambda 函数,该函数应该向 Atlassian 的 API 发送 API 请求当对象上传到 S3 存储桶时(也由 CDK 创建)。这是我的 CDK 堆栈代码:
from aws_cdk import core
from aws_cdk import aws_s3
from aws_cdk import aws_lambda
from aws_cdk.aws_lambda_event_sources import S3EventSource
class JiraPythonStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
# The code that defines your stack goes here
jira_bucket = aws_s3.Bucket(self,
"JiraBucket",
encryption=aws_s3.BucketEncryption.KMS)
event_lambda = aws_lambda.Function(
self,
"JiraFileLambda",
code=aws_lambda.Code.asset("lambda"),
handler='JiraFileLambda.handler',
runtime=aws_lambda.Runtime.PYTHON_3_6,
function_name="JiraPythonFromCDK")
event_lambda.add_event_source(
S3EventSource(jira_bucket,
events=[aws_s3.EventType.OBJECT_CREATED]))
lambda 函数代码使用我导入的requests 模块。但是,当我检查 CloudWatch 日志并测试 lambda 函数时 - 我得到:
无法导入模块“JiraFileLambda”:没有名为“requests”的模块
我的问题是:如何通过 Python CDK 安装 requests 模块?
I've already looked around online and found this。但它似乎直接修改了 lambda 函数,这会导致堆栈漂移(我被告知这对 IaaS 来说是坏的)。我也查看了 AWS CDK 文档,但没有发现任何外部模块/库的提及(我现在正在对其进行彻底检查)有人知道我该如何解决这个问题吗?
【问题讨论】:
标签: python aws-lambda amazon-cloudformation python-module aws-cdk