标签: 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
查看次数

如何使用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(Dos)将文件名中带空格的文件从一个存储桶复制到另一个存储桶

我正在尝试My CV 2017.pdf使用AWS命令行将文件从一个AWS桶复制到另一个.但我这样做是错误的.

我试着用My\ Cv\ 2017.pdf'My CV 2017.pdf',两人都没有工作.

amazon-s3 amazon-web-services aws-cli

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

为 ECR 中的所有存储库设置一项生命周期策略

我很好奇是否有一种方法可以设置一个通用的生命周期策略,该策略将应用于 ECR 中的所有存储库?

目前,据我了解,没有办法做到这一点。

我正在考虑的一种方法是使用生命周期策略的 JSON 定义,并使用 AWS CLI 将其应用到所有存储库(可以稍微自动化一些)。但是这个东西应该在每次创建新存储库时运行,这会增加复杂性。

amazon-web-services aws-cli aws-ecs aws-ecr

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

如何从 AWS CLI 打印特定 Lambda 函数的最新 Cloudwatch 日志?

我正在尝试使用 AWS CLI 和 ASK CLI 来编写 Alexa 技能,并且我希望能够使用 Alexa 模拟器并直接从命令行查看控制台日志以使其变得简单,但我不确定如何实现从命令行查看最后一个。

我已经安装了 AWS 和 ASK CLI,并且能够查看 Cloudwatch 日志,但没有快速的方法来查看最后的日志。

amazon-web-services aws-cli aws-lambda amazon-cloudwatchlogs

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

如何使用 aws CLI 获取 API 密钥

我有一个脚本想要获取 AWS API 网关 ID 和 API 密钥值。到目前为止,我已经能够使用 cli 获取 API 网关 ID:

aws apigateway get-api-keys --query 'items[?name==`my-api-key-name`].id' --output text --region us-east-1
Run Code Online (Sandbox Code Playgroud)

但我无法获取 API 密钥的值。我尝试过以下 cli,但没有成功:

aws apigateway get-api-keys --query 'items[?name==`my-api-key-name`].value' --output text --region us-east-1
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

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

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

AWS CLI V2“AWS firehose put-record”抱怨无效的 base64:

我曾经能够将记录发送到 firehose 而不会出现任何这样的问题

aws firehose put-record --delivery-stream-name my-stream --record='Data="{\"foor\":\"bar\"}"'
Run Code Online (Sandbox Code Playgroud)

但自从我将 cli 更新到版本 2 后,我收到此错误:

Invalid base64: "{"foor":"bar"}"
Run Code Online (Sandbox Code Playgroud)

我尝试将 {"foo":"bar"} 转换为 based64 但后来我得到了InvalidArgumentException

aws firehose put-record --delivery-stream-name my-stream --record='Data=e1wiYXNkZlwiOlwidGVzdGFtXCJ9Ig=='


An error occurred (InvalidArgumentException) when calling the PutRecord operation: This operation is not permitted on KinesisStreamAsSource delivery stream type.
Run Code Online (Sandbox Code Playgroud)

aws-cli amazon-kinesis amazon-kinesis-firehose

10
推荐指数
3
解决办法
4893
查看次数

是否可以通过 AWS CLI 从 Origin 找到 cloudfront 发行版?

我有多个 Cloudfront 发行版指向单个 S3 存储桶来创建不同的 URL。现在我部署的时候很难一一手动清除所有桶的缓存。所以我认为应该有一个选项,我可以在其中找到所有 ID 并清除缓存,但我能找到的只是

aws cloudfront  get-distribution-config
--id <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>] 
Run Code Online (Sandbox Code Playgroud)

其中 id 采用我想找出的 cloudfront 发行版本身的 id。

我无法使用它,因为我不想清除所有发行版的缓存

aws cloudfront list-distributions
[--max-items <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--generate-cli-skeleton <value>]
Run Code Online (Sandbox Code Playgroud)

我正在尝试寻找类似的方法,但到目前为止这似乎不是正确的方法

aws cloudfront --origing <value>
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services amazon-cloudfront aws-cli

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

EB CLI 和 AWS CLI 无法识别 SSO sso_start_url 和 sso_region 配置

EB CLI按照这些说明进行安装。

为了使用它,我按照以下说明AWS CLI配置了SSO

这将创建一个包含以下内容的配置文件~/.aws/config

[profile <profile_name>]
sso_session = <session_name>
sso_account_id = <account_no>
sso_role_name = <role_name>
region = <region>
output = json
[sso-session <session_name>]
sso_start_url = <start_url>
sso_region = <region>
sso_registration_scopes = <scopes>
Run Code Online (Sandbox Code Playgroud)

所有的值似乎都是正确的。

配置完成后,我可以使用以下方式登录SSO

aws sso login --profile <profile_name>
Run Code Online (Sandbox Code Playgroud)

这会将我重定向到 SSO <start_url>,并收到登录确认信息:

Successfully logged into Start URL: <start_url>
Run Code Online (Sandbox Code Playgroud)

EB CLI应该能够使用设置的身份验证方法登录AWS CLI。我正在尝试这样做:

eb init --profile <profile_name>
Run Code Online (Sandbox Code Playgroud)

但是,选择区域后,我收到此错误:

ERROR: InvalidConfigError - The profile "<profile_name>" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services single-sign-on aws-cli amazon-elastic-beanstalk ebcli

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