Java 如何将参数传递给AWS Lambda函数

Java 如何将参数传递给AWS Lambda函数,java,amazon-web-services,aws-lambda,Java,Amazon Web Services,Aws Lambda,我知道可以将参数传递给运行在AWS Lambda上的Java程序,以便对其进行测试。但是如果这个程序被调度事件调用,我不知道如何传递这些参数 有人知道这是否可能吗?如果是,如何进行? 我什么也找不到 提前感谢当前,创建计划Lambda函数的唯一方法是通过AWS控制台,它不提供在调度程序调用Lambda函数时将参数传递给Lambda函数的任何方法。由于AWS中的调度程序正在调用Lambda函数,因此我并不清楚参数传递是如何工作的。您可以间接传递参数,例如通过将参数存储在s3或dynamo db上。

我知道可以将参数传递给运行在AWS Lambda上的Java程序,以便对其进行测试。但是如果这个程序被调度事件调用,我不知道如何传递这些参数

有人知道这是否可能吗?如果是,如何进行? 我什么也找不到


提前感谢当前,创建计划Lambda函数的唯一方法是通过AWS控制台,它不提供在调度程序调用Lambda函数时将参数传递给Lambda函数的任何方法。由于AWS中的调度程序正在调用Lambda函数,因此我并不清楚参数传递是如何工作的。

您可以间接传递参数,例如通过将参数存储在s3或dynamo db上。在每个预定的周期中,您可以从预定的位置读取数据并将其传递给您的程序。通常,如果我需要使用共享源代码启动多个计划lambda函数,我会将一个文件(任何可读格式)与源代码本身捆绑在一起,并在运行期间读取它。
@garnaat是正确的,而且目前无法动态启动新的lambda函数,这是一个极大的不便

如果您有自动部署或CI,另一个选项是在构建时使用maven(或类似)和属性插入参数。 我想它会更优化一些,因为您不必从S3读取文件

例如,您可以拥有
config/env1/app.properties
config/env2/app.properties

使用maven,您可以创建加载相应配置的配置文件,如:

...
<profiles>
    <profile>
        <id>env1</id>
        <build>
            <resources>
                <resource>
                    <directory>config/env1</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>env2</id>
        <build>
            <resources>
                <resource>
                  <directory>config/env2</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </profile>
</profiles>
...
。。。
环境1
配置/环境1
真的
环境2
配置/环境2
真的
...
在代码中,像往常一样阅读props
props.load(ClassLoader.getSystemResourceAsStream(“app.properties”)


在您的自动化中,您可以构建
mvn安装-p en1
来部署您的Jar

您可以利用lambda配置中的环境变量。然后,您可以在Java程序上通过以下方式阅读它们:

System.getenv("VAR_NAME")

您可以创建一个CloudWatch规则作为计划,并将目标的输入配置为一个常量json值:

CloudWatch->Events->Rules->Schedule->targeters

将配置输入设置为Сonstat(JSON文本),并将任何有效的JSON数据传递到那里

在Lambda中,您可以作为输入对象访问常量输入


Hi,在传递自定义输入(比如json)后,如何从lambda中的输入访问元素?我使用Python3.7作为运行时。输入是在事件或上下文中传递的,还是有另一个对象访问元素?我被困在这里已经有一段时间了,非常感谢你的帮助。Thanks@UmangMistry你好net中的函数处理程序如下所示:public async Task FunctionHandler(Request-Request,ILambdaContext-context),其中Request只是一个用JsonProperty序列化其字段的类,所以基本上输入是一个json值。我相信它对应于py handler def my_handler(事件,上下文)中的事件