【发布时间】:2019-03-13 18:59:49
【问题描述】:
我创建了一个三步函数 1.创建一个ec2实例 2.生成APK 3.关机
第一个和第三个函数可以正常工作,但是在第二个函数中,我需要运行一个位于 ec2 实例中的 shell 脚本来生成 apk。 那么如何从 step 函数运行这个脚本呢?
【问题讨论】:
-
脚本从 Lambda 触发这一事实与从 Internet 上的任何位置触发它没有什么不同。您将需要从您的实例中提供一种机制,以允许从外部触发脚本。或者,最好将脚本转换成可以在 Lambda 下运行的东西。
-
根据文档,我在创建实例时发送带有 shell 脚本的 .txt 文件 instance = EC2.run_instances( ImageId=AMI, InstanceType=INSTANCE_TYPE, KeyName="./automatebuild.pem", MinCount =1, # boto 需要,尽管这很明显。 MaxCount=1, InstanceInitiatedShutdownBehavior='terminate', # make shutdown in script terminate ec2 UserData="./init.txt" ) 创建实例后脚本未执行
-
在 EC2 控制台中,选择实例,转到实例设置,然后查看/更改用户数据。确认您的 init.txt 文件的内容正在出现。它应该以
#!开头。如果用户数据不存在,您可能需要以不同的方式将其传递给run_instances命令(而不是通过文件名)。文档实际上声明它需要一个字符串,而不是文件名,因此您的代码需要读取文件的内容并将其传递给该参数。 -
脚本在做什么?
-
我已经开发了白标安卓应用,所以当用户点击“提交”按钮时,应该创建 ec2 实例,然后运行一个脚本,该脚本将创建、构建和生成一个 apk,然后关闭机器
标签: amazon-ec2 aws-step-functions