gpt4 book ai didi

aws-lambda - lambda (EventSource MQTT) 的 SAM 部署失败,参数 VIRTUAL_HOST 无效

转载 作者:行者123 更新时间:2023-12-03 07:13:56 26 4
gpt4 key购买 nike

我正在努力解决在我们的应用程序的两次部署之间突然出现的问题。

我们正在做的是。有一个配置了 EventSource 的 lambda 函数。在本例中,它是一个 MessageQueue (MQ) 事件,正在监听 AmazonMQ RabbitMQ Broker。几个月来它运行良好,但今天的部署却失败了。

上次工作部署:2022-02-02 11:06:16 UTC+0100

错误:

Resource handler returned message: "Invalid request provided: Invalid parameters: VIRTUAL_HOST (Service: Lambda, Status Code: 400, Request ID:, Extended Request ID: null)" (RequestToken: , HandlerErrorCode: InvalidRequest)

模板摘录:

    PagespeedCrawlerFunction:
Type: 'AWS::Serverless::Function'
Properties:
CodeUri: .
Events:
MQEvent:
Type: MQ
Properties:
BatchSize: 120
Enabled: true
Broker: 'arn:aws:mq:us-east-1:11111:broker:cwv-broker:11111'
Queues:
- 'consumer-queue-name'
SourceAccessConfigurations:
- Type: BASIC_AUTH
URI: 'arn:aws:secretsmanager:us-east-1:1111:secret:global-secrets/rabbitmq-broker-credentials'
- Type: VIRTUAL_HOST
URI: '/consumervhost'
FunctionName: 'consumer-v1-prod'
Handler: handler/consumer.php
Layers:
- !Sub 'arn:aws:lambda:${AWS::Region}:209497400698:layer:php-80:16'
- !Sub 'arn:aws:lambda:${AWS::Region}:403367587399:layer:redis-php-80:11'
MemorySize: 250
Policies:
-
AWSSecretsManagerGetSecretValuePolicy:
SecretArn: 'arn:aws:secretsmanager:us-east-1:11111:secret:global-secrets/rabbitmq-broker-credentials'
-
VPCAccessPolicy: {}
- !Ref CwvMqAccessPolicy
ReservedConcurrentExecutions: 5
Runtime: provided.al2
Timeout: 900
VpcConfig:
SecurityGroupIds:
- !ImportValue MainVPC-DefaultSecurityGroup
SubnetIds:
- !ImportValue MainVPC-SubnetPrivateA
- !ImportValue MainVPC-SubnetPrivateB
Parameters:
RetentionDays: 1

Sam 版本:SAM CLI,版本 1.37.0

部署脚本:

sam package \
--output-template-file /tmp/deploy-stack.yaml \
--s3-bucket "deployment-resources" \
--profile "$AWS_PROFILE"

sam deploy \
--template-file /tmp/deploy-stack.yaml \
--s3-bucket "deployment-resources" \
--capabilities CAPABILITY_IAM \
--stack-name "consumer-prod-v1" \
--profile "$AWS_PROFILE"

非常感谢您的帮助。

最佳答案

我设法解决了这个问题。

这个错误是来自 Cloudformation 的令人难以置信的误导。与其提示参数 VIRTUAL_HOST 无效,不如说:您无法更新现有的 EventSource

深入了解我的设置后发现,当前的 BatchSize 在我们的生产环境中被设置为 50,尽管它应该是 120。要更新 BatchSize,您需要从模板中删除事件,部署它,使用新的 BatchSize 再次添加它,然后再次部署。

正是这样做解决了部署问题。

自从我们使用事件触发器以来,我就意识到了这个更新问题,但这个错误消息完全让我困惑。

长话短说。如果您在 Lambda 上遇到事件触发器问题,请首先检查您是否不打算在触发器上部署不可更新的更改。

关于aws-lambda - lambda (EventSource MQTT) 的 SAM 部署失败,参数 VIRTUAL_HOST 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71048968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com