问题标签 [aws-systems-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
466 浏览

yaml - CloudFormation 提到架构版本 2.2 需要文档类型

在浏览器 AWS 控制台的 cloudformation 服务的堆栈上显示以下错误。

架构版本 2.2 需要文档类型(服务:AmazonSSM;状态代码:400;错误代码:InvalidDocumentSchemaVersion;请求 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

CloudFormation 文档中的以下资源发生了这种情况:

我该如何解决这个错误?

0 投票
1 回答
918 浏览

node.js - 使用 CodeDeploy、Parameter Store 和 PM2 设置 EC2 环境变量

我正在使用 CodeDeploy 将 Node.js 应用程序部署到 EC2。我将凭证存储在 AWS Systems Manager 和 Parameter Store 中,但是找不到将这些凭证公开给我的应用程序的方法。

我正在使用 PM2 进行流程管理。我可以成功地从目标机器上的 Parameter Store 中检索参数,所以没有权限问题。例如:

...成功返回正确的字符串。我尝试在我的applicationStart.shCodeDeploy 文件中使用它并启动应用程序:

LOCAL_CACHE_PATHundefined访问时在我的应用程序中返回process.env.LOCAL_CACHE_PATH

因此,环境变量在脚本中可用applicationStart.sh,但在应用程序从该脚本启动时未定义。

我正在寻找一种推荐的方法来将 Parameter Store 中的环境变量与 CodeDeploy 一起使用。

我已经阅读了几十篇关于类似主题的帖子,但无法解决。非常感谢任何指导。

0 投票
1 回答
1125 浏览

amazon-web-services - 如何在所有 AWS 账户之间共享 SSM 文档?

我正在使用 AWS 系统管理器。我正在使用它来使用系统管理器下的分发器将我的软件推送到实例。

分销商创建一个包。该包将包含我的安装脚本、卸载脚本和我要推送的 .exe 文件。整个包将保存为由系统管理员维护的 SSM 文档。

如果假设我有两个 AWS 账户,我的问题是:

一个帐户- 我创建包的帐户(us-east-1)

B 帐户- 正在运行的实例。(ap-southeast-2

我想将“A”中的包推送到帐户“B”实例。

我必须用我的python代码来做这个。所以我使用了boto3。

但它会引发错误,如Invalid Document:cross region arn is not support

我该如何解决这个问题?

无论如何要使所有aws帐户都支持此软件包吗?

0 投票
1 回答
232 浏览

azure-pipelines - 即使作业在后台执行,AWS System Manger 上的 Azure Release Pipeline 任务也会成功

我在 Azure 上安装了 AWS-Toolkit 扩展。在 Azure 发布管道中,我已配置系统管理器运行命令任务以在 ec2 实例上执行 python 脚本。问题在于,一旦触发 SSM - Run 命令任务,它就会给出“成功”状态(在 1 秒内)并继续执行阶段中的下一个任务。但是,该作业仍在 ec2-instance 上执行。

我想知道我应该如何让天蓝色管道任务等到执行真正结束,然后提供它执行的脚本的适当状态。

对于 AWS SSM 控制台上的相同调用,它显示作业(脚本)正在执行中。这是天蓝色管道的问题吗?我其余的 AWS 任务似乎在 azure 管道中运行良好。

注意:管道任务根据需要正确配置(因为它正在做它应该做的事情)。唯一的问题是这个任务应该等到工作完成。

编辑 1: 添加在管道中执行的任务以更清晰:

  1. 使用 Terraform 启动 EC2
  2. 从 repo 获取代码并发布它(使用 Publish Artifact 任务)
  3. 存档(创建 zip),然后将其上传到 S3
  4. 使用 AWS CodeDeploy 服务从 S3 获取代码并将其“安装”到已启动的 EC2 上,然后使用 CodeDeploy Hooks 运行一些“安装后”脚本。
  5. 通过 SSM 执行另一个脚本(因为它可能需要几个小时才能完成,因此无法通过最大超时为 3600 的 CodeDeploy Hooks 来执行)
  6. 脚本执行完成后,使用 terraform destroy 终止实例。
0 投票
1 回答
176 浏览

amazon-web-services - 如何使用 Systems Manager `运行命令`

我已经完成了https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html指南上的步骤,但无法Managed Instances在系统管理器上显示.

我一直在尝试任何事情:

  1. 创建角色并附加它
  2. 让 Systems Manager 向导创建角色并附加它
  3. 创建角色并随后创建 EC2 实例

我不知道还能做什么。任何想法或可能链接到指南?

0 投票
0 回答
67 浏览

amazon-web-services - 使用运行命令从 s3 下载脚本文件夹

我在 S3 中有一个脚本文件夹。

执行的“主”脚本取决于文件夹中的其他一些脚本。

我可以像这样从 s3 运行单个脚本:

我可以让 SSM 下载整个文件夹并在下载后在文件夹中执行一个脚本吗?

0 投票
2 回答
2119 浏览

amazon-web-services - SSM 自动化运行命令不超过默认 3600 秒

我一直在使用 AWS Systems Manager,并且创建了一个文档来运行命令,但似乎无法覆盖 SSM 中运行命令的超时

我已经在参数中更改了执行超时但不起作用。 在此处输入图像描述

另外,我在我的文档中添加了 timeoutSeconds ,它也不起作用。

这是我的文档(我使用的是架构版本 2.2):

0 投票
1 回答
597 浏览

amazon-web-services - AWS Cloudformation SSM 自动化文档 | 与 aws cloudformation 包一起使用

在 AWS Cloudformation 中,我可以cloudformation package通过 CLI 使用该命令。例如,这适用于 Lambda:

现在,我想Code: lambda/helloWorld.py在 Systems Manager 中像自动化文档一样。

例如,我想使用下面这样的外部脚本,而不是下面的行(Restart-Computer -Force):commands:commands: scripts/restart.ps1

您知道实现这一点的任何可能性吗?提前致谢!

0 投票
1 回答
1015 浏览

amazon-web-services - 在 lambda 中保存凭据的最佳方法是什么?

我需要访问 lambda 函数的一些凭据,一种方法是将它们放入环境变量中。

但是,这些凭据的值在 lambda 控制台中是可见的。我正在考虑将它们放在秘密管理器或参数存储中,并将密钥作为 env 放在 lambda 中。然后在运行时加载 lambda 中的值。

但是,这种方法是安全的,但会产生一些延迟。我不确定它会产生多少延迟。有没有更好的解决方案?

0 投票
1 回答
705 浏览

amazon-web-services - SSM 文档不使用角色修改卷

我正在尝试使用 SSM 修改 EC2 实例上的现有卷。我附加了一个带有允许修改 EC2 实例上的卷的策略的角色。我在策略中选择的权限称为 ModifyVolume。当我尝试运行我的脚本时,它给了我以下消息:

调用 ModifyVolume 操作时发生错误(UnauthorizedOperation):您无权执行此操作。

我确信我使用的策略授予我此权限,所以我想知道为什么它不起作用?

这是我的 SSM 文档:

这是我在下面需要的角色: 在此处输入图像描述

我注意到当我将权限直接分配给分配给实例本身的角色时,它会起作用。但是,我只想在使用 SSM 文档时暂时允许此权限。因此,这意味着 SSM 文档不应用此权限,而是使用实例本身上缺少此 ModifyVolume 权限的那个权限。我怎样才能解决这个问题?

我认为这可能是因为我使用的是 aws:runShellScript 命令,所以它根本不应用角色而只是调用实例上的脚本?这可能是原因吗?如果是这种情况,我需要做什么才能完成这项工作?