【问题标题】:Copy files from S3 bucket to EC2 Windows Instance using Lambda使用 Lambda 将文件从 S3 存储桶复制到 EC2 Windows 实例
【发布时间】:2019-03-07 07:19:35
【问题描述】:

我已将设计文件(如 images/css/js)上传到 S3 存储桶,现在我需要将这些文件从 S3 存储桶复制到 EC2 Windows 实例,只要它们上传到存储桶/从存储桶中删除。我已经使用 Powershell 脚本创建了一个 Lambda 函数,但我看不到任何访问 EC2 实例并在那里复制文件的方法。我尝试了以下脚本,但看到类似Cannot find drive. A drive with the name 'C' does not exist

的错误
Start-EC2Instance -InstanceIds i-********
foreach ($i in Get-ChildItem -Path "C:\Windows")
{
Write-Host $i.FullName  

}

有人可以帮忙吗?

【问题讨论】:

  • Lambda 函数在云中运行,而不是在 E2 实例上。它无权访问 EC2 实例。
  • 您可能希望针对实例 ID 运行命令 - 使用 ssm - 类似这样: $cancelCommandResponse=Send-SSMCommand -InstanceId @('Instance-ID','Instance-ID') -DocumentName AWS-RunPowerShellScript -Comment 'Demo AWS-RunPowerShellScript with two instances' -Parameter @{'commands'='Start-Sleep –Seconds 120; dir C:\'} --refer: docs.aws.amazon.com/systems-manager/latest/userguide/… --- 你可以嵌入你的命令 - 应该在一系列命令中在实例“内部”运行 -Parameter @{'commands'='first-command'; '第二命令'}

标签: amazon-web-services powershell amazon-s3 amazon-ec2 aws-lambda


【解决方案1】:

我将以下模式用于类似的用例。就我而言,我想在新创建的 EC2 实例上运行一个 powershell 脚本。

创建 Ec2 实例 (Windows) -> CloudWatch 事件检测到它 -> 触发 Lambda 函数 -> Lambda 函数运行 SSM 文档(很可能只是像 Ketanbhut 建议的 SSM 运行命令)-> SSM 文档运行 powershell 脚本在 EC2 实例上

在您的情况下: 将文件上传到 S3 -> S3 事件通知(您需要配置此项)触发 Lambda 函数 -> Lambda 函数运行 SSM 文档 -> SSM 文档在 EC2 实例上运行 powershell 脚本

【讨论】:

    猜你喜欢
    • 2021-02-10
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多