问题标签 [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.
yaml - CloudFormation 提到架构版本 2.2 需要文档类型
在浏览器 AWS 控制台的 cloudformation 服务的堆栈上显示以下错误。
架构版本 2.2 需要文档类型(服务:AmazonSSM;状态代码:400;错误代码:InvalidDocumentSchemaVersion;请求 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
CloudFormation 文档中的以下资源发生了这种情况:
我该如何解决这个错误?
node.js - 使用 CodeDeploy、Parameter Store 和 PM2 设置 EC2 环境变量
我正在使用 CodeDeploy 将 Node.js 应用程序部署到 EC2。我将凭证存储在 AWS Systems Manager 和 Parameter Store 中,但是找不到将这些凭证公开给我的应用程序的方法。
我正在使用 PM2 进行流程管理。我可以成功地从目标机器上的 Parameter Store 中检索参数,所以没有权限问题。例如:
...成功返回正确的字符串。我尝试在我的applicationStart.sh
CodeDeploy 文件中使用它并启动应用程序:
LOCAL_CACHE_PATH
undefined
访问时在我的应用程序中返回process.env.LOCAL_CACHE_PATH
。
因此,环境变量在脚本中可用applicationStart.sh
,但在应用程序从该脚本启动时未定义。
我正在寻找一种推荐的方法来将 Parameter Store 中的环境变量与 CodeDeploy 一起使用。
我已经阅读了几十篇关于类似主题的帖子,但无法解决。非常感谢任何指导。
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帐户都支持此软件包吗?
azure-pipelines - 即使作业在后台执行,AWS System Manger 上的 Azure Release Pipeline 任务也会成功
我在 Azure 上安装了 AWS-Toolkit 扩展。在 Azure 发布管道中,我已配置系统管理器运行命令任务以在 ec2 实例上执行 python 脚本。问题在于,一旦触发 SSM - Run 命令任务,它就会给出“成功”状态(在 1 秒内)并继续执行阶段中的下一个任务。但是,该作业仍在 ec2-instance 上执行。
我想知道我应该如何让天蓝色管道任务等到执行真正结束,然后提供它执行的脚本的适当状态。
对于 AWS SSM 控制台上的相同调用,它显示作业(脚本)正在执行中。这是天蓝色管道的问题吗?我其余的 AWS 任务似乎在 azure 管道中运行良好。
注意:管道任务根据需要正确配置(因为它正在做它应该做的事情)。唯一的问题是这个任务应该等到工作完成。
编辑 1: 添加在管道中执行的任务以更清晰:
- 使用 Terraform 启动 EC2
- 从 repo 获取代码并发布它(使用 Publish Artifact 任务)
- 存档(创建 zip),然后将其上传到 S3
- 使用 AWS CodeDeploy 服务从 S3 获取代码并将其“安装”到已启动的 EC2 上,然后使用 CodeDeploy Hooks 运行一些“安装后”脚本。
- 通过 SSM 执行另一个脚本(因为它可能需要几个小时才能完成,因此无法通过最大超时为 3600 的 CodeDeploy Hooks 来执行)
- 脚本执行完成后,使用 terraform destroy 终止实例。
amazon-web-services - 如何使用 Systems Manager `运行命令`
我已经完成了https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html指南上的步骤,但无法Managed Instances
在系统管理器上显示.
我一直在尝试任何事情:
- 创建角色并附加它
- 让 Systems Manager 向导创建角色并附加它
- 创建角色并随后创建 EC2 实例
我不知道还能做什么。任何想法或可能链接到指南?
amazon-web-services - 使用运行命令从 s3 下载脚本文件夹
我在 S3 中有一个脚本文件夹。
执行的“主”脚本取决于文件夹中的其他一些脚本。
我可以像这样从 s3 运行单个脚本:
我可以让 SSM 下载整个文件夹并在下载后在文件夹中执行一个脚本吗?
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
您知道实现这一点的任何可能性吗?提前致谢!
amazon-web-services - 在 lambda 中保存凭据的最佳方法是什么?
我需要访问 lambda 函数的一些凭据,一种方法是将它们放入环境变量中。
但是,这些凭据的值在 lambda 控制台中是可见的。我正在考虑将它们放在秘密管理器或参数存储中,并将密钥作为 env 放在 lambda 中。然后在运行时加载 lambda 中的值。
但是,这种方法是安全的,但会产生一些延迟。我不确定它会产生多少延迟。有没有更好的解决方案?
amazon-web-services - SSM 文档不使用角色修改卷
我正在尝试使用 SSM 修改 EC2 实例上的现有卷。我附加了一个带有允许修改 EC2 实例上的卷的策略的角色。我在策略中选择的权限称为 ModifyVolume。当我尝试运行我的脚本时,它给了我以下消息:
调用 ModifyVolume 操作时发生错误(UnauthorizedOperation):您无权执行此操作。
我确信我使用的策略授予我此权限,所以我想知道为什么它不起作用?
这是我的 SSM 文档:
我注意到当我将权限直接分配给分配给实例本身的角色时,它会起作用。但是,我只想在使用 SSM 文档时暂时允许此权限。因此,这意味着 SSM 文档不应用此权限,而是使用实例本身上缺少此 ModifyVolume 权限的那个权限。我怎样才能解决这个问题?
我认为这可能是因为我使用的是 aws:runShellScript 命令,所以它根本不应用角色而只是调用实例上的脚本?这可能是原因吗?如果是这种情况,我需要做什么才能完成这项工作?