标签: aws-cli

如何使用AWS CLI同步两个amazon存储桶?

我正在使用AWS S3 CLI按照文档中指定的Amazon CLI S3 SYNC格式同步两个存储桶,如下所示:

aws s3 sync s3://source_bucket s3://target_bucket --exclude *.tmp
Run Code Online (Sandbox Code Playgroud)

错误我收到以下错误:

A region must be specified --region or specifying the region in a configuration file or as an environment variable. Alternately, an endpoint can be specified with --endpoint-url
Run Code Online (Sandbox Code Playgroud)

除了AWS CLI文档之外,我已经浏览了互联网,并且在S3 SYNC的上下文中没有找到对--region的引用.任何指导将不胜感激!

可能无关紧要,但我在MBPr上运行Mac OS X Mavericks 10.9.1(16GB RAM,512GB SSD,四核)

amazon-s3 amazon-web-services aws-cli

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

什么是cli的有效dynamodb key-condition-expression

有人可以告诉我一个有效的关键条件表达式.我试图在一个名为MyKeyTable的简单表上运行查询.它有两个"列",即Id和AnotherNumberThatICareAbout,类型为Long.

我想看看我投入的所有价值观.所以我尝试过:

aws dynamodb query --select ALL_ATTRIBUTES --table-name MyKeyTable
--endpoint http://localhost:8000 
--key-condition-expression "WHAT DO I PUT IN HERE?"
Run Code Online (Sandbox Code Playgroud)

我需要放入什么哈希?文档对这个imho有点蹩脚.任何帮助表示感谢,即使它只是一个好文档的链接.

amazon-dynamodb aws-cli dynamo-local

10
推荐指数
2
解决办法
6737
查看次数

如何解决AWS Cli问题?

我是亚马逊网络服务的新手.我正在尝试使用我在我的实例上配置的CLI.我试图使用许多命令,但得到以下错误:

aws glacier create-vault --vault-name my-vault --account-id -"Invalid endpoint: https://glacier.US East (N. Virginia).amazonaws.com 
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.

amazon-web-services aws-cli

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

如何使用AWS CLI仅复制S3存储桶中与给定字符串模式匹配的文件

我正在使用AWS CLI使用如下命令将文件从S3存储桶复制到我的R计算机:

  system(
    "aws s3 cp s3://my_bucket_location/ ~/my_r_location/ --recursive --exclude '*' --include '*trans*' --region us-east-1"
    )
Run Code Online (Sandbox Code Playgroud)

这按预期工作,即它复制my_bucket_location中该位置文件名中包含"trans"的所有文件.

我面临的问题是我有其他文件具有类似的命名约定,我不想在此步骤中导入.作为一个例子,在下面的列表中我只想复制前两个文件,而不是最后两个:

File list
trans_120215.csv
trans_130215.csv
sum_trans_120215.csv
sum_trans_130215.csv
Run Code Online (Sandbox Code Playgroud)

如果我正在使用正则表达式,我可以使它更具体"^trans_\\d+",只需要引入前两个文件,但使用AWS CLI似乎不可能.所以我的问题是如何使用AWS CLI进行更复杂的模式匹配,如下所示?

  system(
    "aws s3 cp s3://my_bucket_location/ ~/my_r_location/ --recursive --exclude '*' --include '^trans_\\d+' --region us-east-1"
    )
Run Code Online (Sandbox Code Playgroud)

请注意,我只能使用有关文件的信息,即我想导入带有模式的文件"^trans_\\d+",我不能使用其他不需要的文件在开头包含sum_的事实,因为这只是一个例子可能是其他类似名称的文件,如"check_trans_120215.csv".

我已经考虑了下面的其他替代方案,但希望有一种方法可以调整复制命令以避免沿着这两条路线走下去:

  • 列出存储桶中的所有项目>使用R中的regex指定我想要的文件>仅导入这些文件
  • 保持复制命令的原样>复制后删除R机器上的不需要的文件

r amazon-s3 amazon-web-services aws-cli

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

如何将AWS CLI与Elastic Beanstalk一起使用?

在文档中,它指出EB CLI已被AWS CLI取代,但所有文档仍在讨论EB CLI.

我在Elastic Beanstalk控制台中创建了一个应用程序,现在我已准备好开始开发.我在Ubuntu上安装了所有工具,我已经在本地测试过了.现在我想将它部署到Elastic Beanstalk.如何使用AWS CLI执行此操作?

amazon-web-services aws-cli amazon-elastic-beanstalk

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

有没有办法将一个AWS CLI命令的输出作为输入传递给另一个?

我正在尝试调用run-instances并将生成的实例ID作为create-tags的输入传递为单行,如下所示:

aws ec2 run-instances \
    --image-id ami-1234 \
    --output text \
    --query Instances[*].InstanceId | \
aws ec2 create-tags \
    --tags 'Key="foo",Value="bar"'
Run Code Online (Sandbox Code Playgroud)

尝试这个时,我得到以下内容:

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument --resources is required
Run Code Online (Sandbox Code Playgroud)

这样的事情是可能的,还是一个人不得不求助于使用变量(或其他一些我没想过的方式)?

附加背景

提出这个问题的动机是使用适用于Windows PowerShell的AWS工具可以实现这样的功能; 我希望用AWS CLI完成同样的事情.

等效的PowerShell示例:

New-EC2Instance -ImageId ami-1234 |
    ForEach-Object Instances |
    ForEach-Object InstanceId |
    New-EC2Tag -Tag @{key='foo';value='bar'}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli

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

如何找到api网关阶段的arn?

我正在尝试使用awscli将标签添加到我的api网关阶段 https://docs.aws.amazon.com/cli/latest/reference/apigateway/tag-resource.html

我被要求提供--resource-arn舞台,但我无法确定这个价值.

我已经尝试使用awscli和控制台来确定这个值,但是无法找到api网关阶段的arn.我也尝试过基于arn模式/格式的猜测.

如何确定此值,或者此arn的格式是什么?

tagging amazon-web-services aws-cli aws-api-gateway

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

出口| 仅使用 AWS CLI 导入 DynamoDB

我的目标是拥有一个简单的工具,可以仅通过aws cli或更少的第三方将 dynamodb 导出到本地文件(json/csv)。我的表大小约为 500mb。

我正在进行几天的研究,我看到了非常好的项目,例如dynamodump另一个 SDK 实现。我还测试了Datapipeline来自亚马逊的,但对于我目标的任务想要简单的aws cli.

假设我已经有表的映射,例如索引和属性。现在我只想导入我拥有的项目。对我来说,最好的实施解决方案是这样的:

  1. 将表从 aws 导出到本地文件: aws dynamodb scan --table-name SOMETABLENAME --output json | jq '.Items[]' > SOMETABLENAME.json

  2. sed使用、jqawk...等内容渲染文件。要获得可以导入到 aws-dynamodb 的正确 json 格式

  3. 使用以下命令将项目从 SOMETABLENAME 导入到 aws-dynamodb:

    aws dynamodb put-item --table-name SOMETABLENAME --item file://SOMETABLENAME.json

amazon-dynamodb aws-cli

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

无权执行 sts:AssumeRoleWithWebIdentity- 403

我一直在尝试使用 k8s-sig 组提供的指南运行外部 dns pod。我遵循了指南的每一步,并得到了以下错误。

time="2021-02-27T13:27:20Z" level=error msg="records retrieval failed: failed to list hosted zones: WebIdentityErr: failed to retrieve credentials\ncaused by: AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity\n\tstatus code: 403, request id: 87a3ca86-ceb0-47be-8f90-25d0c2de9f48"
Run Code Online (Sandbox Code Playgroud)

我使用 Terraform 创建了 AWS IAM 策略,并成功创建了它。除了我使用过的服务帐户的 IAM 角色之外eksctl,其他所有内容都是通过 Terraform 生成的。

但是后来我看到了这篇文章,它说使用 awscli 创建 AWS IAM 策略可以消除这个错误。所以我删除了使用 Terraform 创建的策略,并使用 awscli 重新创建它。然而,它抛出了同样的错误错误。

下面是我的外部 dns yaml 文件。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: external-dns
  # If you're using Amazon EKS with IAM Roles for Service Accounts, specify …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli kubernetes eksctl external-dns

9
推荐指数
3
解决办法
4449
查看次数

获取 AWS CLI 中当前设置的配置文件

我在我的 AWS 配置文件中设置了一些配置文件。如何检查当前配置文件的设置?

我不想获取配置文件上设置的值: https: //docs.aws.amazon.com/cli/latest/reference/configure/get.html

我不是在寻找配置文件列表: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configure/list-profiles.html

问题:如何在 AWS CLI 中检查我当前活动的配置文件?

amazon-web-services aws-cli

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