我正在尝试使用无服务器建立一个工作流程,该工作流程创建一个新的 S3 存储桶、一个新的 SQS 队列,当在 S3 存储桶中创建一个对象时,将消息放入队列中,并在队列上有足够的消息时启动 lambda队列。我的资源块中有以下内容:
resources:
Resources:
AnalyticsQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "my-queue"
S3EventQueuePolicy:
Type: AWS::SQS::QueuePolicy
DependsOn: AnalyticsQueue
Properties:
PolicyDocument:
Id: SQSPolicy
Statement:
- Effect: Allow
Action: sqs:SendMessage:*
Resource: !Ref AnalyticsQueue
Queues:
- !GetAtt AnalyticsQueue.Arn
AnalyticsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: "my-bucket"
NotificationConfiguration:
QueueConfigurations:
- Event: s3:ObjectCreated:*
Queue: !GetAtt AnalyticsQueue.Arn
Run Code Online (Sandbox Code Playgroud)
当我尝试部署它时,我收到以下错误:
发生错误:AnalyticsBucket - 无法验证以下目标配置(服务:Amazon S3;状态代码:400;错误代码:InvalidArgument;请求 ID:E2A1F8BD6BEE6EF4;)。
经过一番谷歌搜索,我发现问题出NotificationConfiguration在AnalyticsBucket. 如果我删除整个子块,它部署得很好,但显然在创建对象时不会在队列上生成消息。
正在寻找解决这个问题的方法。
amazon-s3 amazon-sqs aws-cloudformation serverless-framework
假设我们有一些向量:
someVector = c(1, 3, 4, 6, 3, 9, 2, -5, -2)
Run Code Online (Sandbox Code Playgroud)
我想得到一个具有someVector所有奇数元素位置的向量
所以在这种情况下,它看起来像......
resultVector = c(1, 2, 5, 6, 8)
Run Code Online (Sandbox Code Playgroud) 所以我有一个文件,user-database看起来像这样:
export function foo(id: number): Promise<boolean> {
return new Promise<boolean>((resolve, reject) => {
findSomething(id)
.then((data) => {
//do something with data
})
}
}
export function findSomething(id: number): Promise<Object> {
return new Promise<Object> ((resolve, reject) => {
let query = 'SELECT * FROM user';
db.executeQuery(query);
.then(data) => {
if(data.length < 1) { reject(new Error('whoops')); }
resolve(data);
}, (err) => {
reject(err);
})
})
}
Run Code Online (Sandbox Code Playgroud)
所以我正在使用Sinon编写单元测试用于外部函数,foo因此我想将它调用的函数存根findSomething.我这样做如下:
import * as user_db from '../../src/user-database';
describe('POST /someEndpoint', () …Run Code Online (Sandbox Code Playgroud) 我有一个对象数组,对象的定义看起来像这样:
export class AccountInfo {
accountUid: string;
userType: string;
firstName: string;
middleName: string;
lastName: string;
}
Run Code Online (Sandbox Code Playgroud)
注意:我没有将userType作为枚举的原因是因为对象是由数据库调用填充的,我无法找到一种干净的方法让db返回的字符串填充枚举.
我想对数组进行排序,以便首先显示userType为"STAFF"的对象,然后是"TEACHER",然后是"PARENT",然后是"STUDENT".
node.js ×2
typescript ×2
amazon-s3 ×1
amazon-sqs ×1
enums ×1
integer ×1
javascript ×1
r ×1
sinon ×1
sinon-chai ×1
unit-testing ×1