Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Amazon web services 如何在EC2实例上远程运行脚本?_Amazon Web Services_Amazon S3_Amazon Ec2 - Fatal编程技术网

Amazon web services 如何在EC2实例上远程运行脚本?

Amazon web services 如何在EC2实例上远程运行脚本?,amazon-web-services,amazon-s3,amazon-ec2,Amazon Web Services,Amazon S3,Amazon Ec2,我有一个EC2实例,我需要通过我的程序从它的D驱动器下载一个文件。目前,这是一个非常烦人的过程,因为我无法直接从本地机器访问实例。我现在做的是在实例上运行脚本,实例将需要的文件上传到S3,我的程序访问S3读取文件 只是想知道是否有任何简单的方法来访问实例上的驱动器,而不是通过S3?我使用AWS DataPipeline及其任务运行程序在远程实例上执行脚本。taskrunner等待发布到其工作组的管道事件。 我使用它来按计划执行shell脚本和命令。要运行的脚本应该上传到S3,数据管道模板指定脚本

我有一个EC2实例,我需要通过我的程序从它的D驱动器下载一个文件。目前,这是一个非常烦人的过程,因为我无法直接从本地机器访问实例。我现在做的是在实例上运行脚本,实例将需要的文件上传到S3,我的程序访问S3读取文件


只是想知道是否有任何简单的方法来访问实例上的驱动器,而不是通过S3?

我使用AWS DataPipeline及其任务运行程序在远程实例上执行脚本。taskrunner等待发布到其工作组的管道事件。

我使用它来按计划执行shell脚本和命令。要运行的脚本应该上传到S3,数据管道模板指定脚本的路径。对定期任务非常有效。您可以通过脚本在远程设备上执行任何操作。

您不能直接从EC2下载文件,但可以通过s3(或者使用scp命令)从远程EC2下载文件。 但为了简化这个烦人的过程,您可以使用AWS Systems Manager

AWS Systems Manager运行命令允许您在EC2以及本地服务器上远程安全地运行一组命令。下面是实现这一目标的高级步骤

附加实例IAM角色: ec2实例必须具有具有策略AmazonSmFullAccess的IAM角色。此角色使实例能够与Systems Manager API通信

安装SSM代理程序: EC2实例上必须安装SSM代理。SSM代理处理run命令请求并根据命令配置实例

执行命令: 通过AWS CLI的使用示例:

执行以下命令以检索实例上运行的服务。用ec2实例ID替换实例ID

aws ssm send-command --document-name "AWS-RunShellScript" --comment "listing services" --instance-ids "Instance-ID" --parameters commands="service --status-all" --region us-west-2 --output text

更详细的信息:

按访问方式您希望如何访问它?通过HTTP方法或类似的方法。您可以通过S3访问它,那么如何通过转到AWS Dashboard通过S3访问它?回答您帖子中的问题:您可以在实例上安装HTTP服务器或SFTP服务器或其他东西来公开这些文件。回答标题中的问题:查看AWS SSM服务。另外请注意,Stackoverflow.com用于编程问题。您的问题可能属于superuser.com。