1

我在帐户 A中有构建 Angular 应用程序的 Jenkins 节点。为了部署 dist 文件夹,我需要将文件从 s3 复制到 Angular 实例。但是角度实例在账户 B中

脚本:

aws --region us-west-2 ssm send-command --instance-ids i-xxxxxx --document-name AWS-RunShellScript --comment '从管道部署 xxx-release-pipeline' --cloud-watch-output- config 'CloudWatchOutputEnabled=true,CloudWatchLogGroupName=SSMDocumentRunLogGroup' --parameters '{"commands":["aws --region us-west-2 s3 cp s3://xxxx/dist/*.zip /var/www/demo. com/html", "unzip -q *.zip"]}' --输出文本 --query Command.CommandId

因此,当我从节点(在帐户 A 中)运行 ssm send-command 时,它显示无效的实例 ID。

调用 SendCommand 操作时发生错误 (InvalidInstanceId)

Jenkins 节点 -> Account A Angular Instance(with ssm agent) -> Account B

在部署阶段的管道中,我需要将文件从 s3 复制到帐户 B 中的实例 有没有办法在有或没有 ssm 的情况下以更好的方式实现这个用例?

4

1 回答 1

1

我认为您不能直接run-command跨帐户运行。但是您可以通过AWS Systems Manager Automation运行。在您的自动化文档中,您可以使用aws:runCommand

这是可能的,因为 SSM 自动化支持跨账户和跨区域部署

于 2021-06-15T09:56:54.800 回答