【问题标题】:Where in S3 my Lambda code stored我的 Lambda 代码在 S3 中的存储位置
【发布时间】:2018-04-13 00:30:34
【问题描述】:

我已阅读 Lambda 常见问题解答,它说它将我的代码存储在 S3 中并且已加密。

它存储在 S3 的什么位置,我可以解密它以编辑我的代码吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda microservices


    【解决方案1】:

    如果您在创建 Lambda 函数之前将源代码上传到自己的 S3 存储桶,那么您将知道源代码的路径。请注意,仅在 S3 中编辑代码不会更新您的 Lambda 函数。请参阅下面的链接。 Amazon 会将您的代码从您的存储桶复制到 Amazon 的 S3 存储桶。

    如果您在创建 Lambda 函数时在 AWS 控制台中上传代码,则它会存储在您无法访问的 Amazon S3 位置。

    最终结果是您的代码位于您无法访问的私有 Amazon S3 存储桶中。

    AWS Lambda Function Code

    【讨论】:

      【解决方案2】:

      Lambda 服务将您的代码加密存储在 S3 存储桶中。 AWS 没有提供比这更具体的信息。该服务可能有自己的 S3 存储桶,并且它们单独加密存储在那里的所有对象。

      不,您不能直接访问 Lambda 服务的 S3 存储桶,但您可以下载之前上传到 Lambda 函数的代码。转到 AWS Lambda 控制台,选择您的 Lambda 函数,然后单击操作 |导出函数,然后单击下载部署包。注意:如果您的代码是用 Java(或其他编译语言)编写的,那么下载将包含编译文件,而不是原始源代码。

      【讨论】:

        【解决方案3】:

        此代码将允许您阅读您的函数:

        import requests
        import boto3
        client = boto3.client('lambda')
        function = client.get_function(FunctionName='my_function_name_or_arn')
        code_location = function['Code']['Location']
        with open("my_function.zip", "wb") as out:
            out.write(res.content)
        

        如果您尝试读取其他人的函数,您将收到 AccessDeniedException。

        【讨论】:

          猜你喜欢
          • 2018-05-05
          • 2020-03-14
          • 1970-01-01
          • 2017-10-15
          • 1970-01-01
          • 2019-05-06
          • 2019-01-23
          • 2021-07-29
          • 1970-01-01
          相关资源
          最近更新 更多