标签: aws-cli

如何按标签值过滤 CloudFormation 堆栈?

我想获取具有以下标记/值的所有 CloudFormation 堆栈的堆栈名称:

elasticbeanstalk:environment-namemyenvironment

有什么办法可以做到这一点吗?我尝试了这个查询,但它引发了语法错误:

aws cloudformation describe-stacks --query 'Stacks[].Tags[?Key == `elasticbeanstalk:environment-name` && ?Value == `myenvironment`]'
Run Code Online (Sandbox Code Playgroud)

编辑

我弄清楚了过滤部分,但我不知道如何获取堆栈名称。这将返回 null,如何检索 StackName?

aws cloudformation describe-stacks --query 'Stacks[].Tags[?Key == `elasticbeanstalk:environment-name` && Value == `myenv`].{MyStack: StackName}'
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation aws-cli jmespath

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

将输出分配给变量并在 AWS CLI 中加入/串联它们

我有一个构建规范,它是导出到存储桶的 CodePipeline 的一部分,但我需要将该存储桶名称作为带有提取的帐号的字符串传入。

我已成功提取帐号,但我似乎无法将其传递给变量 ( accountnum),也无法将字符串 ( ) 与拉取的字符串/桶名称lambdaapibucket连接起来。accountnum

这是我尝试的最新版本。此时我已经尝试了很多不同的东西,包括反引号、带有退出参数的引号、有或没有回声、管道,以及谁知道我还忘记了什么。预先感谢您提出正确方向的任何想法或观点。

- ACCOUNTNUM= aws sts get-caller-identity --output text --query 'Account'
- LambdaAPIBucket= echo lambdaapibucket-
- LambdaAPIBucketName= concat([$LambdaAPIBucket]  + [$ACCOUNTNUM])
- export BUCKET=LambdaAPIBucketName
Run Code Online (Sandbox Code Playgroud)

command-line-interface amazon-web-services aws-cli aws-codepipeline

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

如何使用 AWS CLI 和对象 ARN 检查 AWS 对象是否存在?

我有以下 AWS 对象 ARN:

arn:aws:elasticloadbalancing:us-west-2:xxxxxxxx:loadbalancer/app/production-lambda-alb/yyyyyyyyyyyy
Run Code Online (Sandbox Code Playgroud)

我需要使用 AWS CLI 检查该对象是否存在。怎么做?

UPD

production-lambda-albelb应用程序类型。

aws elb describe-load-balancers --load-balancer-names production-lambda-alb
Run Code Online (Sandbox Code Playgroud)

返回错误:

调用DescribeLoadBalancers操作时发生错误(LoadBalancerNotFound):没有名为“product-lambda-alb”的活动负载均衡器

然而事实并非如此,因为我可以production-lambda-alb在 aws 控制台中看到平衡器处于活动状态。

amazon-web-services aws-cli

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

AWS CLI 登录命令

我正在开始进入 AWS 世界,最近我配置了本地环境以通过终端连接到我的 AWS 帐户,但我\xe2\x80\x99m 很难找到正确的命令来登录。有人可以指点我如何做吗去做这个。

\n

预先谢谢你

\n

amazon-web-services aws-cli

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

GitBash:如何传递以斜杠 / 开头的参数而不将其视为目录?

在 Windows10 上使用 Git Bash...

我正在使用 aws cli 从 ssm 获取参数。名称参数以“/”开头。bash 将其处理为目录名并导致错误。(命令在 CentOS 中有效。它在 PowerShell 中有效。我想留在 Git Bash 中。)

aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
Run Code Online (Sandbox Code Playgroud)

回复:

{
    "Parameters": [],
    "InvalidParameters": [
        "C:/Program Files/Git/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试过引用和转义...

... "/aws/..."
... '/aws/...'
... \/aws/...
... \/aws\/...
... \\/aws/...
... \\/aws\\...
Run Code Online (Sandbox Code Playgroud)

我尝试过将其放入变量中,但结果是相同的。

我尝试关闭通配符。(我验证“*”不再扩展,但我仍然有同样的问题。)

set -f
Run Code Online (Sandbox Code Playgroud)

我找不到让该命令在 GitBash 中工作的方法。

您碰巧知道解决方案吗?

bash msys git-bash aws-cli

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

从 AWS S3 同步中排除 macOS 隐藏文件

我正在将与 macOS 一起使用的外部硬盘驱动器的全部内容同步到 S3 存储桶。我想排除所有 macOS 隐藏文件。

我试过了:

aws s3 sync --dryrun --exclude "^\." --exclude "\/\." ./ s3://bucketname
Run Code Online (Sandbox Code Playgroud)

但是,我运行时的结果与以下内容完全相同:

aws s3 sync --dryrun . s3://bucketname
Run Code Online (Sandbox Code Playgroud)

所以,我一定做错了什么。

有什么建议么?

谢谢。

macos synchronization amazon-s3 amazon-web-services aws-cli

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

AWS STS 使用案例和优势

我对 STS 的用例和优点感到困惑。根据文档,它是临时获取一个角色来执行 AWS 中 IAM 用户或服务无法执行的任务。请注意,我说的是编程访问(不是控制台访问)

例如,IAM 用户可能没有 S3 权限。据我的理解:

  1. 他可以通过联系AWS STS来获取临时访问密钥/令牌,并获取S3的访问密钥和秘密。

  2. 有了这些临时凭证,他就可以访问 S3。

我的问题是:

  1. 要从 AWS STS 获取临时凭证,他仍然需要现有的访问令牌(永久)和秘密,对吧?

  2. 如果他现有的访问令牌和秘密被泄露,攻击者仍然可以使用它首先从 STS 获取临时凭证,然后访问 S3,对吧?据我所知,攻击者将无法使用他的永久访问令牌和秘密直接访问 S3。

我正在尝试了解其正确的用例。我知道我很困惑,但也许我在循环思考。

提前致谢。

amazon-web-services aws-cli aws-sdk aws-sts

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

如何在终端中轻松切换 AWS 凭证?

我有几个不同的项目。我使用 AWS,也使用 Kubernetes。我的 ~/.aws/credentials 中存储了许多 AWS 凭证,每个凭证都有一个类似的标签

[account-1]
aws_access_key = x
aws_secret_access_key = y

[account-2]
aws_access_key = x
aws_secret_access_key = y
Run Code Online (Sandbox Code Playgroud)

我如何在它们之间切换并轻松设置我的配置?目前,我aws configure在终端中输入内容,并在每次想要在它们之间切换时手动粘贴密钥/秘密/区域。

amazon-web-services aws-cli

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

在 AWS-API-Gateway 中附加集成以通过 CLI 进行路由

我创建了一条路线和一个集成,但我无法使用awscli. 是否可以通过命令行执行此操作,或者只能通过 Web 界面执行此操作?

我的目标是在 Localstack Pro 中重现现有的 API-Gateway v2 配置(使用 AWS Web 控制台创建),在容器启动期间专门使用 aws-cli 工具进行设置。

我可以毫无困难地创建 API、路由和集成:

awslocal apigatewayv2 create-api --name="test-api" --protocol="http"
awslocal apigatewayv2 create-integration --api-id ebb87127 --integration-type AWS --integration-uri arn:aws:lambda:us-east-1:000000000000:function:some-lambda
awslocal apigatewayv2 create-route --api-id ebb87127 --route-key '$default'
Run Code Online (Sandbox Code Playgroud)

aws apigatewayv2 但我在文档下找不到任何将路由链接到集成的内容。

使用 Web 界面在“真正的”AWS 中执行此操作非常简单:

用于管理从路由到集成的链接的选项卡

创建新的集成并直接附加它

如何在命令行中实现这一点?

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

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

如何使用主题名称获取 SNS 主题 ARN,以通过 Boto3 在 Python 中发布 SNS 消息?

Python

运行查询的方法

def function(run_query)
   //topic = arn return from topic name
   topic.publish(message)
   pass
Run Code Online (Sandbox Code Playgroud)

我正在使用 boto3 资源方法。有很多使用 boto3.client 的示例,但使用 boto3 资源方法实现 sns 方法的示例有限。

python amazon-sns aws-cli boto3

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