小编Ani*_*aje的帖子

CloudFormation 正在等待清理与 Lambda 函数关联的 NetworkInterfaces

我在 VPC 中有一个带有 Lambda 函数的 CloudFormation 堆栈,
当尝试删除堆栈时,AWS CloudFormation 至少卡住了 25-30,
我在事件中收到以下消息 -

CloudFormation is waiting for NetworkInterfaces associated with the Lambda Function to be cleaned up.
Run Code Online (Sandbox Code Playgroud)

这似乎是由于 ENI 附加到功能和安全组。

从控制台它不允许我强行删除 ENI 或 ENI 所附加的安全组,
所以我只需要等待吗?

我发现了一些甚至已经有 2 年历史的问题和博客,
AWS 没有解决方案吗?
自动化应该很快,事实证明这是一个巨大的障碍。

参考 -
CloudFormation 问题:无法删除堆栈
https://forum.serverless.com/t/very-long-delay-when-doing-sls-remove-of-lambda-in-a-vpc/2535

amazon-web-services aws-cloudformation

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

如何使用 KeyConditionExpression 查询 AWS DynamoDb?

我有一个 AWS DynamoDb 表,
我有 user_id 作为索引或 GSI(user_id-index ),
并且我有 Product_type 也作为索引或 GSI(prod_type-in​​dex )。

我正在尝试使用 KeyConditionExpression 查询 DynamoDb 表,
但我收到 -

Validation Exception, with message:"Query key condition not supported" and statusCode: 400
ValidationException: Query key condition not supported\n at Request.extractError 
Run Code Online (Sandbox Code Playgroud)

我的桌子上有以下项目结构 -

{
  "id": "12345f9f-f08c-45ae-986a-f1b5ac712345",
  "user_id": 1234,
  "prod_type": "OTHER"
}
Run Code Online (Sandbox Code Playgroud)

以下是我用于查询表的 NodeJs 代码 -

let AWS = require('aws-sdk');

AWS.config.update({
    region: 'us-east-1'
});

let connection = new AWS.DynamoDB.DocumentClient();

let table = "some_table";

let params = {
    IndexName : "user_id-index",
    ExpressionAttributeValues: { …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js amazon-dynamodb

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

使用 vscode 离线 Node 调试无服务器

我正在使用 VS Code 开发 AWS Lambda 函数,我开始使用无服务器框架和无服务器离线库,但是,我无法使用 VS Code 的调试模式在本地调试代码。

我指的是许多网站,以下是其中之一: https://medium.com/@OneMuppet_/debugging-lambada-functions-locally-in-vscode-with-actual-break-points-deee6235f590

我的项目结构如下:

在此输入图像描述

Package.json:

在此输入图像描述

launch.json:

在此输入图像描述

当我开始调试时出现以下错误:

在此输入图像描述

有人可以指导一下正确的配置吗?

javascript node.js visual-studio-code serverless-framework serverless-offline

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

AWS:如何将多个文件从本地复制到 s3?

我正在尝试将多个文件从我的本地上传到 AWS S3 存储桶,
我可以用来aws s3 cp一个一个地复制文件,
但是我需要上传多个但不是全部,即。选择性文件到同一个 S3 文件夹,
是否可以在单个 AWS CLI 调用中执行此操作,如果可以,如何执行?

例如——

aws s3 cp test.txt s3://mybucket/test.txt
Run Code Online (Sandbox Code Playgroud)

参考 -
https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html

amazon-s3 amazon-web-services aws-cli

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

哪个角色附加到实例

如何检查哪些 IAM 角色及其策略 json 附加到正在运行的 EC2实例?

是否可以通过 AWS CLI?

这里是 aws ec2 ddescribe-instances 的响应 在此处输入图片说明

我尝试触发命令 - aws iam list-instance-profiles
它给了我以下错误 -

调用 ListInstanceProfiles 操作时发生错误(AccessDenied):用户:无权执行:资源上的 iam:ListInstanceProfiles:

amazon-ec2 amazon-web-services amazon-iam aws-cli

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

如何在 NodeJs 中使用 util.promisify 和 .bind 函数?

我正在将用 Node v6.10 编写的代码库迁移到 v10.15.3,
我希望使用 async/await 样式和 util 库来避免我的代码所具有的回调地狱,
我能够将函数转换为新的 async/ await 样式并使用 util 库功能。

有人强烈建议我将 .bind 函数链接到 util.promisify()函数,

我知道 .bind() 用于变量/对象范围。
但是真的有必要在使用 util lib 进行承诺后进行 .bind 吗?

以下是我的示例代码 -

let fs   = require('fs');
let util = require('util');

let test = async () => {

    let keyPath = 'someFile.txt';

    //This works
    const fsReadFile = util.promisify(fs.readFile);

    //This also works
    //const fsReadFile = util.promisify(fs.readFile).bind(this);

    //This also works
    //const fsReadFile = util.promisify(fs.readFile).bind(fs);

    var fileContent  = await fsReadFile(keyPath, 'utf8');
    console.log(fileContent);
}; …
Run Code Online (Sandbox Code Playgroud)

node.js

8
推荐指数
2
解决办法
4378
查看次数

如何为 AWS API Gateway 自定义授权方提供 Lambda 权限?

我有一个 AWS Lambda 函数,在成功将其设置为授权方后,我试图为其提供权限。

基本上我想在 CloudFromation 中实现以下目标 -

在此处输入图片说明

以下是我的 CloudFormation 资源,无法设置权限 -

GWAuthPermission:
    Type: "AWS::Lambda::Permission"
    Properties:
      Action: lambda:InvokeFunction
      FunctionName: !GetAtt AuthTest.Arn
      Principal: "apigateway.amazonaws.com"
      SourceArn: !Sub "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${ApiGatewayRestApi}/authorizers/${AuthTest}"
Run Code Online (Sandbox Code Playgroud)

ApiGatewayRestApi - 是网关
AuthTest的逻辑 Id - 是自定义 Auth lambda 函数的逻辑 Id

amazon-web-services aws-cloudformation aws-lambda aws-api-gateway

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

如何使用 AWS CloudWatch Insights 查询 AWS CloudWatch 日志?

我有很多 AWS Lambda 日志,我需要查询它们以找到相关的日志流名称,
我正在日志中记录一个特定的字符串,
我需要对其进行类似或精确查询。

日志格式是这样的 -

Request ID => 572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd
Run Code Online (Sandbox Code Playgroud)

我可以在没有 UUID 字符串的情况下查询日志 -

在此处输入图片说明

但是如果我在查询中提到 UUID,它不会显示结果 - 在此处输入图片说明

使用的查询 -

fields @timestamp, @message
| filter @message like /Request ID =>/
| sort @timestamp desc
| limit 20

fields @timestamp, @message
| filter @message like /Request ID => 572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd/
| sort @timestamp desc
| limit 20
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cloudwatch aws-cloudwatch-log-insights

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

如何在 AWS DynamoDb js sdk 中使用 begin_with?

我有一个用例在AWS Dynamodb 表的主排序键上应用begin_with, 我可以使用来自 AWS 控制台的 begin_with 键条件查询表, 我希望使用 AWS Javascript SDK 实现相同的目的。


在此处输入图片说明 在此处输入图片说明

我的表中有以下字段 -
1. user_id(主分区键
2. user_relation(主排序键

我尝试了以下代码 -

let AWS = require('aws-sdk');
let util = require('util');

AWS.config.update({
    region: 'us-east-1'
});

let connection = new AWS.DynamoDB.DocumentClient();

let params = {
    TableName: 'user_details',
    KeyConditionExpression: 'user_id = :user_id and user_relation begins_with :user_relation',
    ExpressionAttributeValues: {
        ':user_id': "1234",
        ':user_relation': "followed-by"
    }
};

console.log('getQuery Params => ', params);
let dynamoDb = util.promisify(connection.query).bind(connection);
let results = …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-web-services node.js amazon-dynamodb aws-sdk

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

如何在 GitLab 运行器容器中安装包?

我正在尝试使用 GitLab runner 实现一些 CICD,
我对容器非常陌生,并尝试在容器中安装 zip 包,
我能够使用 pip 安装 awscli,但是,我无法安装 zip 包,这是我的 shell 脚本需要。

以下是 .gitlab-ci.yml 文件 -

stages:
    - build

build:
    image: python:latest
    stage: build
    script:
        - pip install awscli
        - yum install zip
        - bash cicdScript.sh
Run Code Online (Sandbox Code Playgroud)

我正在使用 python 容器,因为我的脚本需要 awscli,
但还需要 zip 包,
我尝试了以下操作 -

1)

script:
            - pip install awscli
            - yum install zip
            - bash cicdScript.sh
Run Code Online (Sandbox Code Playgroud)

给出 -

/bin/bash: line 82: yum: command not found
Run Code Online (Sandbox Code Playgroud)

2)

script:
            - pip install awscli
            - apt-get install …
Run Code Online (Sandbox Code Playgroud)

linux command-line-interface gitlab docker

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