小编rou*_*urn的帖子

在API网关中映射Lambda输出会导致服务器错误

我有一个AWS API网关设置,由Python Lambda函数提供服务.对于成功的响应,Lambda返回以下形式的响应:

"200:{\"somekey\": \"somevalue\"}"
Run Code Online (Sandbox Code Playgroud)

默认情况下,合并响应网关控制台设置有一个配置了一个规则LAMBDA错误的正则表达式.*映射为200的响应状态也能正常工作.

问题是当我尝试将其更改为200.*时(为了启用更具体的代码).现在我得到了

{"message": "Internal server error"}
Run Code Online (Sandbox Code Playgroud)

每次我用任何请求打网关(导致200或不是).

没有错误日志写入CloudWatch.

在此输入图像描述

我想知道如何在AWS API Gateway中成功将Lambda输出映射到HTTP状态代码.

regex rest amazon-web-services aws-lambda aws-api-gateway

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

在FreeRTOS中创建多个队列的任务?

我在向FreeRTOS中的任务发送多个队列时遇到问题.

我已经尝试过创建一个结构来保存它们:

typedef struct
{
    xQueueHandle buttonQueue;
    xQueueHandle OLEDQueue;
} xQueues;
Run Code Online (Sandbox Code Playgroud)

然后将其发送到这样的任务:

void vStartADCtasks( xQueueHandle xButtonQueuex, QueueHandle xOLEDQueue )
{
    xQueues xADCQueues = { xOLEDQueue, xButtonQueue };
    xTaskCreate( vGetAltitude, "Get Altitude", 240, (void *) &xADCQueues, 2, NULL );
}
Run Code Online (Sandbox Code Playgroud)

并在任务中像这样访问它:

static void vGetAltitude(void *pvParameters) {
    xQueues *xADCQueues = ( xQueues * ) pvParameters;
    xQueueHandle xOLEDQueue = xADCQueues->OLEDQueue;
    xQueueHandle xButtonQueue = xADCQueues->buttonQueue;
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有小费吗?我想我更常见的问题是如何在多个.c文件之间传递队列.即.创建它和一个文件,但能够在另一个文件的任务中使用它吗?

c freertos

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

Python - 嵌套ifs的相同代码

在Django中,处理表单的规范方法是:

if request.method == 'POST':
    form = SomeForm(request.POST)
    if form.is_valid():
        use the form data
Run Code Online (Sandbox Code Playgroud)

我想执行相同的代码,无论是没有POST还是表单无效 - 这是几行代码,所以我想知道是否有一个更好的方法来做这个比两个重复的else块(一个用于内部if和one for outer)?

python django

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

为什么这个CUDA示例内核有for循环?

我一直在查看官方CUDA网站上的以下示例:

http://docs.nvidia.com/cuda/cuda-samples/index.html#simple-cufft

点击此处下载:http://developer.download.nvidia.com/compute/DevZone/C/Projects/x64/simpleCUFFT.zip

它包含以下内核:

// Complex pointwise multiplication
static __global__ void ComplexPointwiseMulAndScale(Complex *a, const Complex *b, int size, float scale)
{
    const int numThreads = blockDim.x * gridDim.x;
    const int threadID = blockIdx.x * blockDim.x + threadIdx.x;

    for (int i = threadID; i < size; i += numThreads)
    {
        a[i] = ComplexScale(ComplexMul(a[i], b[i]), scale);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么这里有一个for循环?CUDA不会同时调用一个线程数组吗?我删除了线程,用以下代码替换它,它产生相同的输出.

// Complex pointwise multiplication
static __global__ void ComplexPointwiseMulAndScale(Complex *a, const Complex *b, int size, float scale)
{
    const int threadID …
Run Code Online (Sandbox Code Playgroud)

cuda

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

基于变量的for循环方向

我有几个很大的for循环,我想分成函数来减少代码重复.

它们之间的唯一区别是循环的第一行.

一个是:

for (int j = 50; j < average_diff; j++) {
Run Code Online (Sandbox Code Playgroud)

另一个是:

for (int j = upper_limit; j > lower_limit; j--) {
Run Code Online (Sandbox Code Playgroud)

我有一个整数,tb表示我想使用哪一个(它的值分别为1或2).

我想知道如何才能做到最好.这是宏的一个很好的用例吗?

c++

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