我看到的问题非常多,发生在这里:https://forums.aws.amazon.com/thread.jspa?threadID=246123&tstart=0

但是,我没有使用Powershell,而是希望在不学习如何做的情况下进行这项工作。

我已使用Windows Schedule安排了一个任务,该任务将在Windows Server的EC2实例启动(由CloudWatch触发器启动)时运行。该任务将启动一个控制台应用程序,该应用程序应从GoogleSheet中提取数据,将其写入RSS JSON文件,然后将其上传到S3存储桶。

实例启动并+ I登录+时,一切正常。运行任务,运行控制台应用程序,并更新S3存储桶项目。

但是(当我在S3存储桶中看到的最新修改日期是我上次登录的时间)未登录时,此方法不起作用,但是我知道任务正在运行(显示在计划任务的历史记录中)。

该实例具有一个IAM角色,可以完全访问S3。

控制台应用程序是C#应用程序。它使用AmazonS3Config()方法:

AmazonS3Config config = new AmazonS3Config();
            var awsAccessKey = ConfigurationManager.AppSettings["AWSAccessKey"];
            var awsSecretKey = ConfigurationManager.AppSettings["AWSSecretKey"];
            AmazonS3Client client = new AmazonS3Client(awsAccessKey, awsSecretKey, RegionEndpoint.USEast1);
            tUtil = new TransferUtility(client);


在App.config中,我具有AmazonS3Config()方法的凭证:

  <appSettings>
    <add key="AWSAccessKey" value="****" />
    <add key="AWSSecretKey" value="****" />
    <add key="ClientSettingsProvider.ServiceUri" value="" />
  </appSettings>


任务计划程序设置:

c# - Windows计划的任务未使用EC2发布到S3存储桶-LMLPHP

c# - Windows计划的任务未使用EC2发布到S3存储桶-LMLPHP

c# - Windows计划的任务未使用EC2发布到S3存储桶-LMLPHP

除上述内容外,我还仔细按照this视频中的说明进行操作。该应用程序不再检查app.config文件中的密钥,而是来自EC2实例本身。但这并不能解决问题。

有什么建议吗?

最佳答案

AWS CLI将帐户配置文件存储在用户配置文件中,当您注销时无法从用户配置文件中加载帐户配置文件,因此您的方法要求登录到系统。您可以进行更改,将帐户配置文件存储在其他位置并加载它不会有问题,建议您在此处进行检查:https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html

顺便说一句,Windows任务计划程序中有几个复选框,以使您的任务无需登录即可运行,请注意。
另外,将admin用户设置为task不足以获取最高级别​​的权限,您需要选中提升权限复选框。

问候...

07-24 09:38
查看更多