标签: aws-cli

aws cli:如何查询列表值?

aws cli有一个--query选项,允许您只选择一些信息.

举个例子,我有兴趣从ec2 describe-instances中获取安全组名称.

如果我跑:

aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[InstanceId,InstanceType,SecurityGroups]
Run Code Online (Sandbox Code Playgroud)

我的输出看起来像:

i-xxxxxxx m1.type [{u'GroupName': 'groupName', u'GroupId': 'sg-xxxxx'}]
Run Code Online (Sandbox Code Playgroud)

我还可以使用索引访问列表的元素:

aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[InstanceId,InstanceType,Tags[0].Value,Tags[0].Name]
Run Code Online (Sandbox Code Playgroud)

是否可以查询标签,以便代替Tag [0]我搜索指定名称的标签?

amazon-web-services aws-cli

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

使用aws cli,确定当前区域的最佳方法是什么.

交互式地,我可以使用"aws configure"来更改或查看默认区域.是否有"pwd"之类的功能,记录与否,允许我在脚本中确定或确认当前区域?即使没有定义AWS_DEFAULT_REGION?我想要一个脚本在许多配置文件下运行.我可以从aws配置列表中删除,但是有什么更整洁的东西吗?

region amazon-web-services aws-cli

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

如何使用AWS CLI更新具有过期日期的S3存储桶

我想用新内容更新S3存储桶(在存储桶中创建一个文件夹).什么是--expires日期格式.我没有AWS CLI在谷歌上找到任何使用的例子.有人可以帮我解决这个问题吗?

像这样的东西:

aws s3 sync $backup_home s3://backup/$app-backup/$app-$DATE --expires '$DATE'
Run Code Online (Sandbox Code Playgroud)

amazon-s3 aws-cli

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

使用ls和wildcard检查s3中是否存在文件

看起来很简单,但没有正确的语法.我想知道我的s3存储桶中是否存在使用通配符的文件.就像是

aws s3 ls s3://my-bucket/folder/*myfile*
Run Code Online (Sandbox Code Playgroud)

目标是查看此存储桶中是否存在被调用2016_myfile.txt的文件或调用的文件2011_myfile.csv.

如果我运行该命令,即使我知道该文件存在,它也不会返回任何内容.

amazon-s3 aws-cli

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

如何限制对 S3 存储桶中单个文件夹的访问?

我想限制对 S3 存储桶中单个文件夹的访问,并且我已经为其编写了 IAM。但是我仍然无法将文件上传/同步到此文件夹。这里bucket是存储桶名称,folder也是我想要授予访问权限的文件夹。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUserToSeeBucketListInTheConsole",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "AllowRootAndHomeListingOfBucket",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        ""
                    ],
                    "s3:delimiter": [
                        "/"
                    ]
                }
            }
        },
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:HeadObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::bucket"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [ …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services aws-cli

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

如何找出与ALB关联的ECS群集

我们在ELB后面运行一个ECS集群(ALB,具体而言).

我有一个流程允许我通过查询ALB并通过目标组追溯结果然后实例来找出哪个ECS群集与ALB相关联:


这是bash脚本:

ELB_NAME=$(aws route53 list-resource-record-sets --hosted-zone-id <Zone-ID> | jq -r --arg URL "$URL"'.ResourceRecordSets[]|select(.Name==$URL)|.AliasTarget.DNSName')

ELB_NAME=$(echo $ELB_NAME | cut -f 2- -d "." | rev | cut -f 2- -d "." | rev)

ELB_ARN=$(aws elbv2 describe-load-balancers | jq -r --arg ELB_NAME "$ELB_NAME" '.LoadBalancers[]|select((.DNSName|ascii_downcase)==$ELB_NAME)|.LoadBalancerArn')

TG_ARNS=$(aws elbv2 describe-target-groups | jq -r --arg ELB_ARN "$ELB_ARN" '.TargetGroups[]|select(.LoadBalancerArns[]==$ELB_ARN)|.TG_ARN=$(echo $TG_ARNS | cut -f 1 -d " ")

INSTANCE_ID=$(aws elbv2 describe-target-health --target-group-arn $TG_ARN | jq -r '.TargetHealthDescriptions[].Target.Id' | head -n 1)

CLUSTER=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID | jq …
Run Code Online (Sandbox Code Playgroud)

bash amazon-web-services aws-cli

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

如何在树莓派上安装 awscli 版本 2

sudo apt install awscli安装当前版本 1.16.113-1

官方网站(https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html)支持aarch64不支持 armhf。还有其他方法或我缺少的东西吗?v1 和 v2 之间的差异不是很大,但例如 v1 不支持--storage-class DEEP_ARCHIVE

amazon-s3 amazon-web-services raspberry-pi amazon-glacier aws-cli

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

是否可以使用AWS CLI在AWS账户之间复制?

是否可以使用AWS CLI在AWS账户之间复制S3存储桶的内容?我知道可以在同一个帐户中的存储桶之间复制/同步,但我需要将旧AWS账户的内容转换为新账户.我在AWS CLI中配置了两个配置文件,但我没有看到如何在单个copy/sync命令中使用这两个配置文件.

amazon-s3 amazon-web-services aws-cli

12
推荐指数
3
解决办法
8503
查看次数

可以在AWS S3存储桶中找出文件依赖关系吗?

源目录包含许多大型图像和视频文件.

需要使用该aws s3 cp命令将这些文件上载到AWS S3存储桶.例如,作为此构建过程的一部分,我将我的图像文件复制my_image.jpg到S3存储桶,如下所示:aws s3 cp my_image.jpg s3://mybucket.mydomain.com/

我手动将此副本发送到AWS没有问题.我也可以编写脚本.但是我想使用makefile上传我的图像文件,my_image.jpg 如果我的S3存储桶中的同名文件比我的源目录中的文件旧.

通常make非常擅长基于文件日期的这种依赖性检查.但是,有什么方法可以告诉我make从S3存储桶中的文件获取文件日期并使用它来确定是否需要重建依赖项?

makefile amazon-s3 aws-cli

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

AWS S3:调用 GetObject 操作时发生错误 (AccessDenied):拒绝访问

我有一个具有读/写权限的 AWS 帐户,如下所示: 在此处输入图片说明

我想这样做,以便 IAM 用户可以从 S3 存储桶下载文件,但在执行时访问被拒绝aws s3 sync s3://<bucket_name> .我尝试了各种方法,但都无济于事。我做的一些步骤:

  1. 创建了一个名为 s3-full-access 的用户
  2. aws configure在我的 CLI 中执行并为上述用户输入生成的访问密钥 ID 和秘密访问密钥
  3. 创建了一个存储桶策略(如下所示),我希望它为我在第一步中创建的用户授予访问权限。

在此处输入图片说明

我的存储桶有一个文件夹名称 AffectivaLogs,其中文件是由各种用户匿名添加的,看起来虽然存储桶是公开的,但其中的文件夹不是,我什至无法将其公开,这导致以下错误。

在此处输入图片说明

以下是公共访问设置:

在此处输入图片说明

更新:我按如下方式更新了存储桶策略,但它不起作用。

在此处输入图片说明

amazon-s3 amazon-web-services aws-cli

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