Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用AWS Lambda函数从EC2实例检索信息_Python_Amazon Web Services_Amazon Ec2_Aws Lambda_Aws Cdk - Fatal编程技术网

Python 使用AWS Lambda函数从EC2实例检索信息

Python 使用AWS Lambda函数从EC2实例检索信息,python,amazon-web-services,amazon-ec2,aws-lambda,aws-cdk,Python,Amazon Web Services,Amazon Ec2,Aws Lambda,Aws Cdk,如何在Lambda函数中使用CDK和python在新部署/配置的linux EC2实例中检索系统信息 我想知道是否可以提取在/etc/environment.d/servervars.env中定义的一个或多个环境变量 我希望这些值在Lambda函数中可用。我当前的Lambda函数知道实例id。由于信息是静态的,并且是在实例设置过程中添加的,因此可以在设置脚本中添加一行: MY_ID=`curlhttp://169.254.169.254/latest/meta-data/instance-id

如何在Lambda函数中使用CDK和python在新部署/配置的linux EC2实例中检索系统信息

我想知道是否可以提取在
/etc/environment.d/servervars.env
中定义的一个或多个环境变量


我希望这些值在Lambda函数中可用。我当前的Lambda函数知道实例id。

由于信息是静态的,并且是在实例设置过程中添加的,因此可以在设置脚本中添加一行:

MY_ID=`curlhttp://169.254.169.254/latest/meta-data/instance-id --沉默的`
应用程序=工资单
aws ec2创建标记--resources$MY_ID--tags Key=Application,Value=Application

AWS CLI需要AWS凭据来创建标记。这可以通过将IAM角色分配给具有
ec2:CreateTags
权限的实例来实现。

与其考虑Lambda如何访问实例,不如考虑实例如何使信息在实例外部可用(如Lambda函数)?例如,将信息存储在与实例关联的标记中,或将数据推送到Amazon S3。访问实例通常比较困难,除非实例运行某种形式的服务器(例如web服务器)。另一种选择是使用Systems Manager在实例上运行脚本来检索信息,但要实现这一点需要相当高的开销。我对您前面写的内容感兴趣,“例如,将信息存储在与实例关联的标记中”。你能提供更多的信息吗?仅供参考,我现有的lambda由CloudWatch触发,当事件与EC2的RunInstances事件匹配时触发。您希望从该实例获取什么信息?它是静态信息(从不更改),还是定期更新?它是关于正在运行的应用程序的信息,还是关于实例本身的信息?我的想法是,实例上的应用程序可以更新与实例相关联的标记——将其视为实例上某些内容的元数据。然后,Lambda函数只需查看标记即可发现信息。这就像在会议上戴着名牌,而不是每个人每次都要问你的名字。这是个好主意。因此,实例有责任更新自己的标签,就像我们与会者负责处理我们的姓名标签,而不是外部人员将标签放在我们身上一样。是的,这些信息是静态的,并且在提供实例的过程中添加。实例可以使用哪个工具更新自己的标记?