小编Wil*_*mes的帖子

使用 API Gateway 发布 SNS 主题/使用 API Gateway 的多个 lambda 函数

现在我的要求是,每当我通过 API 获取数据时,我都必须将其保存到 2-3 个不同的位置(例如,保存到我自己的数据库、某些 BI 服务中,有时还保存到日志记录数据库中)。

我不知道是否可以将单个资源和单个方法绑定到多个 lambda 函数左右。所以,我的替代方法是,因为我已经知道如何通过订阅 SNS 主题来触发多个 lambda 函数,我想也许如果我能以某种方式从 API 网关发布到 SNS 主题,剩下的就很容易了。我目前的想法如下:

当前的实施思路

但问题是,我无法从 API 网关发布到 SNS 主题。我收到类似的错误TopicArn or TargetArn Reason: no value for required parameter

我的做法是,创建一个普通的 SNS 主题。然后,创建一个特殊的角色策略,如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "StmtXXXXXXXXXXX",
            "Effect": "Allow",
            "Action": [
                "sns:Publish",
                "sns:Subscribe",
                "sns:Unsubscribe"
            ],
            "Resource": [
                "SNS-TOPIC-ARN"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

然后使用 POST/GET 方法创建 API(我都尝试过)并添加 SNS 主题作为 AWS 服务代理和角色作为执行角色。

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

5
推荐指数
1
解决办法
4728
查看次数

Docker PHP7.x Codeception Selenium WebDriver 抛出 net::ERR_CONNECTION_REFUSED

我正在尝试设置 Codeception 来对我的 Web 应用程序进行验收和功能测试。以下是我的文件:

docker-compose.yml

version: '3.7'

services:
  # nginx - web server
  nginx:
    build:
      context: ./docker-config/nginx
      dockerfile: ./Dockerfile
    env_file: &env
      - ./cms/.env
    init: true
    ports:
      - "8000:80"
    volumes:
      - cpresources:/var/www/project/cms/web/cpresources
      - ./cms/web:/var/www/project/cms/web:cached
    networks:
      mmc-network:
        aliases:
          - mmc.nginx
  # php - run php-fpm
  php:
    build: &php-build
      context: ./docker-config/php-prod-craft
      dockerfile: ./Dockerfile
    depends_on:
      - "mysql"
      - "redis"
    env_file:
      *env
    expose:
      - "9000"
    init: true
    volumes: &php-volumes
      - some volumes............
    networks:
      mmc-network:
        aliases:
          - mmc.php

  # mysql - database
  mysql:
    build:
      context: …
Run Code Online (Sandbox Code Playgroud)

php selenium nginx docker codeception

5
推荐指数
1
解决办法
164
查看次数

PHPUnit_Framework_Exception: PHPUnit_Framework_TestCase::$name 不能为空

我正在开发一个 vagrant box,它是为达到目的而定制的。我的 PHPUnit5.2.12版本是5.2.22.

当我执行phpunit命令时,出现以下错误:

PHPUnit_Framework_Exception: PHPUnit_Framework_TestCase::$name must not be null.
Run Code Online (Sandbox Code Playgroud)

代码

下面是我的 phpunit.xml 内容:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="bootstrap/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="true"
         stopOnFailure="false"
         stderr="true">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist>
            <directory suffix=".php">app/</directory>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    </php>
</phpunit>
Run Code Online (Sandbox Code Playgroud)

php phpunit vagrant

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