amazon-web-services - 使用无服务器在 localstack 上部署 lambda 时出错
问题描述
将 lambda 部署到 localstack 时出现奇怪的错误。有没有人经历过类似的事情?在 localstack 出现错误之前的警告中有一些气味。putSubscriptionFilter 调用中的 destinationArn 是 arn:aws:logs:eu-west-1:802587217904:destination:51b991a8-4c89-4528-b0cd-88ff57bc09c3#MQyP8p1VJ7ndRwDq0S#orderUpdate#local。对于在 localstack 中创建的其他资源,accountid 不应该是 000000000000 吗?
localstack docker-compose.yml
version: "3.8"
services:
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
image: localstack/localstack:latest
networks:
default:
reaction:
ports:
- "127.0.0.1:53:53"
- "127.0.0.1:53:53/udp"
- "127.0.0.1:443:443"
- "127.0.0.1:4566:4566"
- "127.0.0.1:4571:4571"
environment:
- SERVICES=${SERVICES- }
- DEBUG=1
- KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
无服务器.yml
configValidationMode: error
variablesResolutionMode: 20210326
frameworkVersion: '2'
plugins:
- serverless-localstack
custom:
localstack:
host: http://localhost
edgePort: 4566
stages:
- local
provider:
name: aws
region: eu-west-1
runtime: nodejs12.x
lambdaHashingVersion: 20201221
memorySize: 51
functions:
orderUpdate:
handler: orderUpdate.orderupdatehandler
events:
- http:
path: orderupdate
method: post
private: true
来自本地堆栈的错误:
2021-11-15T11:41:41:警告:localstack.utils.cloudformation.template_deployer:
使用参数调用 <botocore.client.CloudWatchLogs 对象在 0x7f76d89a2c10>> 的 <bound method ClientCreator._create_api_method.._api_call 时出错:{'logGroupName': '/aws/lambda/tibber-ecom-erp-api-local-orderUpdate', 'filterName': '/aws/lambda/api-local-orderUpdate', 'filterPattern': '?"REPORT RequestId: " ?"SERVERLESS_ENTERPRISE"', 'destinationArn': 'arn:aws:logs:eu-west-1 :802587217904:destination:51b991a8-4c89-4528-b0cd-88ff57bc09c3#MQyP8p1VJ7ndRwDq0S#tibber-ecom-erp-api#local'} 资源:{'Type': 'AWS::Logs::SubscriptionFilter', 'LogicalResourceId': 'CWLSubFilterOrderUpdateLogGroupEuWest1', 'Properties': {'DestinationArn': 'arn:aws:logs:eu-west-1:802587217904:destination:51b991a8-4c89-4528-b0cd-88ff57bc09c3#MQyP8p1VJ7ndRwDq0S#api#local', 'FilterPattern': '?"REPORT RequestId: " ?"SERVERLESS_ENTERPRISE"', 'LogGroupName': '/aws/lambda/api-local-orderUpdate' }, '状态':{},'PhysicalResourceId':无}
2021-11-15T11:41:41:DEBUG:localstack.utils.cloudformation.template_deployer: Error applying changes for CloudFormation stack "api-local": An error occurred (InvalidParameterException) when calling the PutSubscriptionFilter operation: PutSubscriptionFilter operation cannot work with destinationArn for vendor logs Traceback (most recent call last):
File "/opt/code/localstack/localstack/utils/cloudformation/template_deployer.py", line 1482, in _run
self.do_apply_changes_in_loop(changes, stack, stack_name)
File "/opt/code/localstack/localstack/utils/cloudformation/template_deployer.py", line 1554, in do_apply_changes_in_loop
self.apply_change(change, stack, new_resources, stack_name=stack_name)
File "/opt/code/localstack/localstack/utils/cloudformation/template_deployer.py", line 1619, in apply_change
result = deploy_resource(resource_id, new_resources, stack_name)
File "/opt/code/localstack/localstack/utils/cloudformation/template_deployer.py", line 778, in deploy_resource
result = execute_resource_action(resource_id, resources, stack_name, ACTION_CREATE)
File "/opt/code/localstack/localstack/utils/cloudformation/template_deployer.py", line 835, in execute_resource_action
resource_id, resources, resource_type, func, stack_name, action_name
File "/opt/code/localstack/localstack/utils/cloudformation/template_deployer.py", line 963, in configure_resource_via_sdk
raise e
File "/opt/code/localstack/localstack/utils/cloudformation/template_deployer.py", line 951, in configure_resource_via_sdk
result = function(**params)
File "/opt/code/localstack/.venv/lib/python3.7/site-packages/botocore/client.py", line 391, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/opt/code/localstack/.venv/lib/python3.7/site-packages/botocore/client.py", line 719, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidParameterException: An error occurred (InvalidParameterException) when calling the PutSubscriptionFilter operation: PutSubscriptionFilter operation cannot work with destinationArn for vendor logs
解决方案
推荐阅读
- javascript - 我可以将 Windows.print 从 chrome 设置为 IE 模式吗?
- security - 如何验证请求标头是否由特定 Web 应用程序添加
- powershell - SPI_GETCURSORSHADOW 0x101A - 无法获取布尔值
- python - 查找给定子字符串 Python 的最长连续运行
- python - 检查字符串是否具有 .pdf 扩展名
- javascript - Javascript 匹配正则表达式行为
- php - 在 bool 上调用成员函数 execute()
- c# - ASP.Net MVC 找不到控制器中未包含的命名空间
- javascript - 尝试在 react-router 中实现 react-transition-group 会产生错误:'元素类型无效......'
- scala - Scala 中间早期初始化器