我正在完成教程"演练2:处理Amazon S3事件(Node.js)".我有关于CLI参数的问题:
aws lambda add-permission \
--function-name CreateThumbnail \
--region us-west-2 \
--statement-id some-unique-id \
--action "lambda:InvokeFunction" \
--principal s3.amazonaws.com \
--source-arn arn:aws:s3:::sourcebucket \
--source-account bucket-owner-account-id \
--profile adminuser
Run Code Online (Sandbox Code Playgroud)
参数是什么--statement-id some-unique-id?
我正在尝试使用该命令创建AWS Lambda函数
aws lambda create-function \
--function-name foo\
--runtime nodejs\
--role lambda_basic_execution \
--handler asdf --zip-file "fileb:://boom.zip"
Run Code Online (Sandbox Code Playgroud)
我在目录中有一个名为boom.zip的文件.但是我无法使用上面的命令进行部署.
我得到的失败信息是
--zip-file必须是fileb://前缀的文件.
有没有人有一个工作示例来使用AWS CLI创建lambda函数?
使用以下命令将数据传输到S3时,普通AWS CLI是否默认使用SSL?
aws s3 cp source to destination
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 16.04 LTS上使用AWS cli,我试图列出所有桶.在aws configure中,我输入了IAM用户访问密钥和IAM用户密钥.这个IAM用户有权列出存储桶并可以在控制台中列出存储桶.但是使用带有这些密钥的AWS cli并运行命令 - aws s3 ls 它给了我这个错误.
调用ListBuckets操作时发生客户端错误(SignatureDoesNotMatch):我们计算的请求签名与您提供的签名不匹配.检查您的密钥和签名方法.
我已经创建了一个策略来列出这个特定IAM用户的存储桶.
我想执行进一步的同步操作,并使用此IAM用户凭据通过shell脚本使所有文件进行公共操作,并且不想使用root凭据.
我正在使用Terraform在AWS中自动提供Cognito Identity Pools.AWS提供商尚不支持Cognito,所以我一直在使用null_resource和local-exec来调用AWS CLI.
我有以下资源:
resource "null_resource" "create-identitypool" {
provisioner "local-exec" {
command = "aws cognito-identity create-identity-pool --identity-pool-name terraform_identitypool --no-allow-unauthenticated-identities --developer-provider-name login.terraform.myapp"
}
}
Run Code Online (Sandbox Code Playgroud)
它给出了以下输出:
null_resource.create-identitypool (local-exec): {
null_resource.create-identitypool (local-exec): "IdentityPoolId": "eu-west-1:22549ad3-1611-......",
null_resource.create-identitypool (local-exec): "AllowUnauthenticatedIdentities": false,
null_resource.create-identitypool (local-exec): "DeveloperProviderName": "login.terraform.myapp",
null_resource.create-identitypool (local-exec): "IdentityPoolName": "terraform_identitypool"
null_resource.create-identitypool (local-exec): }
null_resource.create-identitypool: Creation complete
Run Code Online (Sandbox Code Playgroud)
下一步是将一些我已经创建的角色添加到身份池:
resource "null_resource" "attach-policies-identitypool" {
provisioner "local-exec" {
command = "aws cognito-identity set-identity-pool-roles --identity-pool-id ${null_resource.create-identitypool.IdentityPoolId} --roles authenticated=authroleXXX,unauthenticated=unauthroleXXX"
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法提取IdentityPoolId,$ {null_resource.create-identitypool.IdentityPoolId},以便在第二个资源中使用.我理解null_resource没有输出属性,所以如何从命令行输出中获取此JSON对象.我还想使用tirggers并运行aws cognito-identity list-identity-pools和可能的delete-identity-pool来使这一切都可重复,我也需要输出.
有任何想法吗?如果我在其他地方错过了这些信息,我会道歉.我也在Terraform邮件列表上问了这个问题,但我想我会尝试更广泛的受众.
蒂姆,谢谢
作为构建我的docker容器的过程的一部分,我需要从s3存储桶中提取一些文件,但是我现在仍然保持这种情况,fatal error: Unable to locate credentials因为我现在将凭据设置为ENVvars(虽然想知道更好的方法来执行此操作)
因此,在构建容器时,我会运行
docker build -t my-container --build-arg AWS_DEFAULT_REGION="region" --build-arg AWS_ACCESS_KEY="key" --build-arg AWS_SECRET_ACCESS_KEY="key" . --squash
Run Code Online (Sandbox Code Playgroud)
在我的Dockerfile中我有
ARG AWS_DEFAULT_REGION
ENV AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION
ARG AWS_ACCESS_KEY
ENV AWS_ACCESS_KEY=$AWS_ACCESS_KEY
ARG AWS_SECRET_ACCESS_KEY
ENV AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
RUN /bin/bash -l -c "aws s3 cp s3://path/to/folder/ /my/folder --recursive"
Run Code Online (Sandbox Code Playgroud)
有谁知道我怎么解决这个问题(我知道有一个选项可以添加配置文件,但这似乎是一个不必要的额外步骤,因为我应该能够从ENV读取).
我使用Python SDK删除DNS记录集Route53.由于Route53API限制,删除有时会失败,并且过时的DNS记录集正在建立.
随着DNS记录集接近10,000限制,我想删除去年创建的记录集,因为它们不再需要.但我无法使用AWS CLI或使用Python SDK(Boto3)找到创建记录的时间.有没有办法让DNS记录创建时Route53使用CLI或SDK?
最终,我需要为 Cognito 用户池中的用户生成 AccessKeyId、SecirutyKey 和 SessionToken,以便我可以使用 Postman 作为 Cognito 用户测试 lambda 函数。到目前为止,我已经花了 2 天的时间试图解决这个问题。似乎这会起作用:
aws sts assume-role-with-web-identity --role-arn arn:aws:iam::1234567890:role/rolename--role-session-name "RoleSession1" --web-identity-token ??? --provider-id provideridvalue
Run Code Online (Sandbox Code Playgroud)
我能够获得 provider-id 值,但我无法获得 web-identity-token 的有效值。
如果我理解正确,这应该让我获得网络身份令牌:
aws cognito-idp initiate-auth --auth-flow USER_PASSWORD_AUTH --client-id clientidvalue --auth-parameters USERNAME=usernamevalue,PASSWORD=passwordvalue
Run Code Online (Sandbox Code Playgroud)
我从联合身份池中获得了 clientidvalue。
我一直无法解决的问题是上面的命令给了我这个错误:
未知选项:PASSWORD=<密码>
我尝试了许多不同的变体,包括 json 格式,但没有任何效果。我究竟做错了什么?
我正在检索我使用AWS cli存储在AWS秘密管理器中的秘密,如下所示:
aws secretsmanager get-secret-value --secret-id secrets
Run Code Online (Sandbox Code Playgroud)
哪个回报
arn:aws:secretsmanager<ID>:secret:my_secrets <number> my_secrets {"API_KEY":"ABCDEFGHI"} <UUID string>
VERSIONSTAGES AWSCURRENT
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何得到秘密("API_KEY":"ABCDEFGHI")?我需要将这些秘密移到我的register-task-definition环境变量中.最好的方法是将它们存储在文件中并在我们之后删除它或将它们存储在变量中.它在linux机器上运行.
谢谢
我正在尝试将目录中以“model.ckpt”开头的所有文件同步到 S3 存储桶路径,方法如下:
aws s3 sync ./model.ckpt* $S3_CKPT_PATH
但我收到错误:
Unknown options: ./model.ckpt-0.meta,<my S3_CKPT_PATH path>
但是,aws s3 sync . $S3_CKPT_PATH有效,但给了我很多我不想要的附加文件。
有人知道我该怎么做吗?
synchronization wildcard amazon-s3 amazon-web-services aws-cli
aws-cli ×10
amazon-s3 ×4
aws-lambda ×3
amazon-iam ×1
aws-cognito ×1
boto3 ×1
docker ×1
dockerfile ×1
linux ×1
postman ×1
security ×1
terraform ×1
wildcard ×1