当我在 CI aws-cli 中执行更新 CloudFormation 堆栈时,收到以下错误消息:
An error occurred (ValidationError) when calling the UpdateStack operation: No updates are to be performed.
Run Code Online (Sandbox Code Playgroud)
没有更新被视为错误,因此 CI 失败。知道如何捕获此错误吗?
我需要显示 s3 存储桶中存在的所有目录,其中某些目录被隐藏,只有当我将版本过滤为“显示”而不是隐藏时才会再次显示。
同样的情况也适用于目录内我们看不到文件的文件,但是当我们选择版本中的过滤器为“显示”时,它会显示文件。
我们如何在aws-cli中看到这些文件和目录。如果您有解决方案,请帮忙。
例如:
roxor@ubuntu:~$ aws s3 ls s3://dw-etl-source-prod
workday dsr
Run Code Online (Sandbox Code Playgroud)
我需要获取 4 个目录,但由于这些目录包含版本控制,因此未显示。如果我筛选版本以显示它会提供 aws s3 UI 中的所有文件,但我如何使用 AWS CLI 执行相同操作。
是否可以在 Windows 上通过 PIP 安装 AWS CLI v2?
在说明中推荐的安装方式是通过 MSI,但我想使用 PIP。
如果我按照 Linux 方式安装Github 上给出的CLI 会怎样:
python -m pip install awscli
Run Code Online (Sandbox Code Playgroud)
默认安装v1还是v2?
我有一个 shell 脚本,它将我的公共 IP 添加到指定的 ec2-security-group。我浏览了一些 AWS 文档,但找不到使用哪个 API 来更新现有 IP 地址,而不是简单地添加一个。
我经历了以下事情:
是否有一个API可以用来简单地更新安全组中现有的IP地址?
我使用以下 bash 脚本向安全组添加新条目。
#!/bin/bash
curl https://checkip.amazonaws.com > ip.txt
awk '{ print $0 "/32" }' < ip.txt > ipnew.txt
export stuff=$(cat ipnew.txt)
aws ec2 authorize-security-group-ingress --group-name XXXXX --protocol tcp --port 22 --cidr $stuff --profile xxxxx
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 AWS CLI 上检索会话令牌,如下所示:
aws sts get-session-token --serial-number arn-string --token-code mfacode
在哪里
arn-string从 IAM 管理控制台复制,分配的 MFA 设备的安全凭证,格式如下arn:aws:iam:<number>:mfa/<name>mfacode取自已注册的虚拟 MFA 设备An error occurred (InvalidClientTokenId) when calling the GetSessionToken operation: The security token included in the request is invalid.
但是,我使用该 MFA 设备在浏览器中登录控制台就可以了
我的 ~/.aws/ 中只有一个默认配置文件,但我不知道这会产生什么影响。
--token-code,希望它提示我输入 MFA 设备令牌——同样的错误arn:aws:iam:<number>:user/<name>-- 与预期相同的错误,因为aws get-session-id help 明确指出它需要是 MFA 设备的 arn我认为这与 arn-string 而不是令牌有关,但是什么?任何关于导致此问题的原因的想法都非常受欢迎。
问候,奥拉夫
我在通过 cloudformation 创建现货队列请求时遇到错误。请求已创建,但当队列尝试请求实例时,我收到标题中提到的错误。
此处描述了所需的权限,但是当我尝试按照步骤创建AWSServiceRoleForEC2SpotFleet角色时,我没有选择“EC2 - Spot Fleet”的选项,只能选择 EC2 FLeet。奇怪的是,当我创建 CF 堆栈时,它实际上确实为我创建了该服务链接角色。
我的用户拥有管理员凭据,并且我使用“aws-ec2-spot-fleet-tagging-role”作为队列角色。
据我了解,服务链接角色只需要存在即可使其工作,但我无法手动创建它。我能够通过控制台成功创建队列,使用与模板中使用的完全相同的值,并且我也在那里选择相同的“aws-ec2-spot-fleet-tagging-role”。
我还向我的用户提供了该文档中提到的 IAM 凭据,即使它是管理员,只是为了查看我是否需要传递权限,但据我所知,只有当我在启动规范中提供实例配置文件时,我才真正需要它,我不是。这是我在模板中的资源定义:
SpotFleetRequestConfigData:
TargetCapacity: 1
IamFleetRole: arn:aws:iam::73682036499:role/aws-ec2-spot-fleet-tagging-role
LaunchSpecifications:
- ImageId: '{{resolve:ssm:TestImage:4}}' #param stored reference to AMI
InstanceType: t2.small
NetworkInterfaces:
- SubnetId: !ImportValue CustomVPCStack-dmz-subnet-1
DeviceIndex: 0
Groups:
- !Ref EC2MCServerSecurityGroup
TagSpecifications:
-
ResourceType: instance
Tags:
-
Key: Name
Value: spotfleetserver
ReplaceUnhealthyInstances: true
Type: maintain #default```
Run Code Online (Sandbox Code Playgroud) 错误:可能未处理的承诺拒绝(id:0):CredentialsError:配置中缺少凭证,如果使用 AWS_CONFIG_FILE,请设置 AWS_SDK_LOAD_CONFIG=1
我在 React Native (0.64.0) 项目中使用 "aws-sdk": "^2.918.0" 。我正在使用节点 v14.17.0 和 Windows 10 版本 21H1 操作系统构建 19043.985 上运行该程序:
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
AWS.config.update({
region: 'us-east-1',
maxRetries: 3,
httpOptions: {timeout: 30000, connectTimeout: 5000},
});
// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({
apiVersion: '2012-08-10',
});
console.log('ddb: ', ddb);
Run Code Online (Sandbox Code Playgroud)
〜/.aws/config
[default]
region=us-east-1
output=json
[profile myName]
region = us-east-1
output = json
Run Code Online (Sandbox Code Playgroud)
〜/.aws/凭证
[default]
aws_access_key_id=XXX...
aws_secret_access_key=XXX...
[mateo\.lara]
aws_access_key_id=XXX...
aws_secret_access_key=XXX...
Run Code Online (Sandbox Code Playgroud)
使用 ddb …
我有一个简单的脚本,我想使用 AWS CLI 显示来自 AWS 的特定信息。
例如:
get_cluster_name() {
EKS_NAME=$(aws eks describe-cluster --name ${CUSTOMER_NAME}) && \
echo $EKS_NAME | jq -r .cluster.name}
Run Code Online (Sandbox Code Playgroud)
集群存在时的输出正常,我得到了集群的名称。
当集群不存在时,我得到:
An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: example_cluster.
Run Code Online (Sandbox Code Playgroud)
我的目标是在找不到集群时获得空输出。为此,我想在输出中使用条件中的返回代码或字符串查找。
问题是输出不是 stdout 或 stderr,因此我什至无法将其定向到 /dev/null 只是为了消除错误。
我怎样才能使这段代码正常工作?:
[[ $(get_cluster_name) =~ "ResourceNotFoundException" ]] && echo "EKS Cluster:....$(get_cluster_name)"
Run Code Online (Sandbox Code Playgroud)
或者
[[ $(get_cluster_name) ]] && echo "EKS Cluster:....$(get_cluster_name)"
Run Code Online (Sandbox Code Playgroud)
谢谢。
您好,我无法运行此命令 aws sts get-caller-identity。
当我这样做时 sudo nano ~/.aws/credentials我只能找到这个
[default]
aws_access_key_id = my_id
aws_secret_access_key = my_secret_id
Run Code Online (Sandbox Code Playgroud)
aws configure当我执行成功的命令步骤后,aws sts get-caller-identity 我收到此错误
调用 GetCallerIdentity 操作时发生错误 (InvalidClientTokenId):请求中包含的安全令牌无效。
有什么原因可能导致这种情况吗?
我正在尝试使用AWS CodeArtifact来利用私有存储库。那里的说明提到执行aws-clinpm 登录命令。此登录命令从 AWS 获取令牌并将其放置在 users 中.npmrc。
我曾尝试将此登录功能放入preinstall项目的脚本中package.json,但问题是.npmrc仅在此步骤中进行修改,而在继续执行yarn install任务时不会重新加载。
有什么方法可以加载此令牌,yarn同时保持登录/安装过程无缝?
aws-cli ×10
bash ×2
amazon-ec2 ×1
amazon-s3 ×1
aws-sdk ×1
aws-sts ×1
devops ×1
installation ×1
multi-factor-authentication ×1
node.js ×1
npm ×1
package.json ×1
pip ×1
python ×1
shell ×1
stderr ×1
stdout ×1
windows ×1
yarnpkg ×1