上传具有多个标签的对象的正确语法是什么?以下带有 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) 我正在尝试使用 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 命令几乎是即时的。有没有更有效的方法来做到这一点?
我的系统是 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,然后也尝试
也给了我同样的错误。
这里有关于我的系统的一些信息
aws-cli我正在尝试运行 AWS Batch 作业,但在调用将数据从 s3 复制到容器中时失败。错误信息如下:
fatal error: Unable to locate credentials
Run Code Online (Sandbox Code Playgroud)
我的作业定义具有执行角色,具有两个托管策略:AmazonS3FullAccess和AmazonECSTaskExecutionRolePolicy。容器映像是根据默认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) 要在 aws cli 中创建自定义配置文件,我使用以下命令:
aws configure --profile user1
Run Code Online (Sandbox Code Playgroud)
但是,我找不到任何命令来删除我的配置文件之一。
我有一个包含超过 2000 万个对象 (2.3TB) 的 S3 存储桶。
这些对象需要用用户定义的名称填充其内容处置元数据,同时保留其现有的内容类型元数据。
文件名存储在单独的 RDS 数据库中。
看起来我可以对少量文件使用复制命令,但对于这么大的存储桶,这听起来并不是一个明智的选择。
任何帮助将不胜感激!
我正在尝试使用下面的 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)
我所指的书就是使用同样的方法。
在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) 我一直在研究 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) 如何使用aws-cli获得RDS实例的可用空间?
尝试:
aws rds describe-db-instances | grep -i 'size|space|free|available|used'
Run Code Online (Sandbox Code Playgroud)
但没有结果
aws-cli ×10
amazon-s3 ×3
aws-lambda ×3
aws-batch ×1
boto3 ×1
docker ×1
dockerfile ×1
homebrew ×1
macos ×1
python ×1
python-3.x ×1
ssl ×1
ubuntu ×1