标签: aws-cli

通过 aws cli 上传期间将多个标签应用于对象

上传具有多个标签的对象的正确语法是什么?以下带有 1 个标签的命令可以正常工作:

aws s3api put-object --bucket mybucket --key something/obj.txt --body obj.txt --tagging "mykeyname1=myvalue1"
Run Code Online (Sandbox Code Playgroud)

但是以下带有多个标签的命令会生成错误:

aws s3api put-object --bucket mybucket --key something/obj.txt --body obj.txt --tagging "mykeyname1=myvalue1, mykeyname2=myvalue2"
Run Code Online (Sandbox Code Playgroud)

错误

An error occurred (InvalidArgument) when calling the PutObject operation: The header 'x-amz-tagging' shall be encoded as UTF-8 then URLEncoded URL query parameters without tag name duplicates
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services aws-cli

2
推荐指数
1
解决办法
1489
查看次数

aws s3 ls 的 boto3 等效项是什么?

我正在尝试使用 boto3 复制该命令aws s3 ls s3://bucket/prefix/。目前,我可以使用以下方式获取路径中的所有对象

s3 = boto3.client('s3')

bucket = "my-bucket"
prefix = "my-prefix"
paginator = s3.get_paginator('list_objects_v2')
page_iterator = paginator.paginate(Bucket=bucket, Prefix = prefix)
Run Code Online (Sandbox Code Playgroud)

然后,我可以迭代 page_iterator 并手动重建该路径中的顶级目录。但是,由于路径内有大量对象,因此检索所有对象以重建此命令的结果对我来说大约需要 30 秒,而 AWS CLI 命令几乎是即时的。有没有更有效的方法来做到这一点?

amazon-s3 aws-cli boto3

2
推荐指数
1
解决办法
1209
查看次数

使用自制程序安装 AWS CLI 时出现错误 [SSL: CERTIFICATE_VERIFY_FAILED]

我的系统是 M1 Mac,配备 macOS 12.3.1,并通过自制软件安装 aws cli,当尝试运行时,aws s3 ls出现错误 SSL validation failed for https://s3.{awsregion}.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)

我检查了 python3 SSL 路径,命令python3 -c 'import ssl; print(ssl.get_default_verify_paths())' 结果是DefaultVerifyPaths(cafile='/opt/homebrew/etc/openssl@1.1/cert.pem', capath=None, openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/opt/homebrew/etc/openssl@1.1/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/opt/homebrew/etc/openssl@1.1/certs')

这意味着它使用brew install版本的openssl@1.1并且python3也使用brew install版本python@3.9位置是 /opt/homebrew/bin/python3

我尝试重新安装 awscli、openssl@1.1 和 python@3.9,然后也尝试

  1. 从brew中卸载Python3
  2. 使用 Python 网站的安装程序安装 Python
  3. 在Python文件夹中执行Install Certificates.command
  4. 卸载Python
  5. 从brew安装python@3.9

也给了我同样的错误。

这里有关于我的系统的一些信息

  • M1 Mac - MacOS 12.3.1
  • Python3-brew python@3.9 (3.9.12)
  • OpenSSL - 酿造 openssl@1.1 (1.1.1n)
  • AWS CLI-brew awscli (2.6.0) …

python macos ssl homebrew aws-cli

2
推荐指数
1
解决办法
3081
查看次数

AWS Batch 容器无法通过 aws-cli 访问 S3

aws-cli我正在尝试运行 AWS Batch 作业,但在调用将数据从 s3 复制到容器中时失败。错误信息如下:

fatal error: Unable to locate credentials
Run Code Online (Sandbox Code Playgroud)

我的作业定义具有执行角色,具有两个托管策略:AmazonS3FullAccessAmazonECSTaskExecutionRolePolicy。容器映像是根据默认ubuntu:22.04映像构建的,并且具有类似于以下内容的入口点文件:

fatal error: Unable to locate credentials
Run Code Online (Sandbox Code Playgroud)

我还一直在阅读以下问题:ECS Fargate task not apply role,它指出容器应该有一个变量AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,但我没有。我在入口点添加了 a declare -x,这是我执行批处理作业时的输出:

declare -x AWS_BATCH_CE_NAME="MyCluster"
declare -x AWS_BATCH_JOB_ATTEMPT="1"
declare -x AWS_BATCH_JOB_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
declare -x AWS_BATCH_JQ_NAME="MyQueue"
declare -x AWS_DEFAULT_REGION="us-west-2"
declare -x AWS_EXECUTION_ENV="AWS_ECS_FARGATE"
declare -x AWS_REGION="us-west-2"
declare -x DEBIAN_FRONTEND="noninteractive"
declare -x ECS_CONTAINER_METADATA_URI="http://111.111.111.1/v3/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxx"
declare -x ECS_CONTAINER_METADATA_URI_V4="http://111.111.111.1/v4/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxx"
declare -x HOME="/root"
declare -x HOSTNAME="ip-111-11-1-111.us-west-2.compute.internal"
declare -x OLDPWD
declare …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli aws-batch

2
推荐指数
1
解决办法
1269
查看次数

如何删除 aws configure 配置文件?

要在 aws cli 中创建自定义配置文件,我使用以下命令:

aws configure --profile user1
Run Code Online (Sandbox Code Playgroud)

但是,我找不到任何命令来删除我的配置文件之一。

aws-cli

2
推荐指数
1
解决办法
7566
查看次数

向数百万个 S3 对象添加元数据

我有一个包含超过 2000 万个对象 (2.3TB) 的 S3 存储桶。

这些对象需要用用户定义的名称填充其内容处置元数据,同时保留其现有的内容类型元数据。

文件名存储在单独的 RDS 数据库中。

看起来我可以对少量文件使用复制命令,但对于这么大的存储桶,这听起来并不是一个明智的选择。

任何帮助将不胜感激!

amazon-s3 amazon-web-services aws-cli aws-lambda

2
推荐指数
1
解决办法
420
查看次数

如何使用 aws cli 将字符串作为有效负载传递给 aws lambda 函数?

我正在尝试使用下面的 aws cli 命令来调用 lambda 函数。

aws lambda invoke  --invocation-type RequestResponse  --function-name HelloWorldJava  --payload \"world\" outputfile.txt
Run Code Online (Sandbox Code Playgroud)

但我遇到了以下错误。

Invalid base64: ""world""
Run Code Online (Sandbox Code Playgroud)

我所指的书就是使用同样的方法。

amazon-web-services aws-cli aws-lambda

2
推荐指数
1
解决办法
2670
查看次数

在aws cli上切换区域的命令


在aws cli上切换区域的命令是什么?我想切换到 lambda 所在的另一个区域
我已尝试过这些命令,但它们不起作用

aws --region <region_name>
aws set region <region_name>
aws configure region <region_name>
aws lambda .... --region <region_name>
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli aws-lambda

2
推荐指数
1
解决办法
1万
查看次数

码头工人 | PermissionError: [Errno 13] 权限被拒绝 &amp; 命令返回非零代码: 100

我一直在研究 FastAI 模型,现在准备部署它。然而,我在通过 Docker 在本地运行模型时遇到了困难。

我不知道导致问题的原因以及如何解决它。我对 Docker 的经验很少。创建自己的 Dockerfile 对我来说是个新鲜事;所以我可能遗漏了明显的命令。

Dockerfile

# Install image and dependencies
FROM python:3.9

# Set working directory
WORKDIR /app

# Copy the application files from the host to the container
COPY app.py /app/

# Install necessary packages
RUN apt-get update && \
    apt-get install -y --fix-missing && \
    pip install pip==20.2

# Install project dependencies
COPY requirements.txt /requirements.txt
RUN pip install -r /requirements.txt

# Download model artefacts from S3
RUN apt-get install -y awscli …
Run Code Online (Sandbox Code Playgroud)

ubuntu python-3.x docker aws-cli dockerfile

2
推荐指数
1
解决办法
6130
查看次数

AWS CLI:获取RDS可用空间

如何使用aws-cli获得RDS实例的可用空间?

尝试:

aws rds describe-db-instances | grep -i 'size|space|free|available|used'
Run Code Online (Sandbox Code Playgroud)

但没有结果

aws-cli

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