小编Teh*_*cco的帖子

IDMSV2 后 SSM 代理无法在 EC2 上工作

我在 Windows 服务器上。我必须从可能位于不同可用区的另一个实例的快照重新启动一个实例。另一项更改是,我通过在创建新实例时提前更新启动配置,在 EC2 上启用了 imdsv2。

此实例上的SSM 代理失败并出现以下错误 -

原因:获取“http://169.254.169.254/latest/meta-data/instance-id”:超出上下文截止日期(等待标头时超出 Client.Timeout)
2023-03-08 05:29:34 错误 [newAgentIdentityInner @ Identity_selector.go.99]代理无法采用任何身份
2023-03-08 05:29:34错误[NewAgentIdentity@identity_selector.go.112]未能找到身份,重试:未能找到代理身份
2023-03-08 05 :29:41 错误 [NewEC2Identity @ ec2_identity.go.281] [EC2Identity] 无法获取身份实例 ID。错误:RequestError:发送请求失败

我无权在 CLI 上访问 EC2,因此无法使用使用 SSM 代理日志对托管实例中的问题进行故障排除中ec2 describe-instance提到的 CLI 命令来检查实例元数据是否已启用。我知道是这样。并且不需要任何代理。

GitHub 上的这个问题与我的有点相似,但我不明白我需要做什么来解决这个问题。

amazon-ec2 amazon-web-services aws-ssm

5
推荐指数
1
解决办法
4327
查看次数

如何访问 ECR 上的 AWS Lambda 映像的 shell

我想安装一些依赖项供我的 lambda 函数使用。原始管道使用 amazonlinux:2 docker 映像,我们在其上安装依赖项,然后使用无服务器打包并上传。

虽然这适用于 python3.7,但正如本 GitHub 问题中提到的,这对于 >3.7 的 python 版本来说是破坏性的,这可能是因为 python3.8 及更高版本没有 amazonlinux 作为基础映像。

所以我想使用尽可能最接近的基础图像,并使用public.ecr.aws/lambda/python:3.8.

但我的命令出现以下错误,

docker run public.ecr.aws/lambda/python:3.9
输出:入口点要求处理程序名称作为第一个参数

docker run --rm \
--volumes-from src \
public.ecr.aws/lambda/python:3.8 \
/bin/bash -c "cd $(container_dir) && sh build_lambda.sh"
输出:入口点需要处理程序名称成为第一个论点

但是当我运行时,带有如下命令的 dockerfile 可以工作docker build。

来自 --platform=linux/x86_64 public.ecr.aws/lambda/python:3.8

// 设置工作目录
RUN mkdir -p /opt/app
RUN mkdir -p /opt/app/build
RUN mkdir -p /opt/app/bin/
...

我希望能够使用 shell 来完成此操作,因此将此映像作为容器运行,无需 Dockerfile 即可访问其 shell。当前的管道将 shell 命令放在 build_lambda.sh 中,我不想对其进行太多更改。

任何更好的推荐方法也将受到欢迎

amazon-web-services docker aws-lambda

4
推荐指数
1
解决办法
832
查看次数