gpt4 book ai didi

amazon-web-services - 无法在没有代码的情况下使用 CloudFormation 创建 AWS Lambda

转载 作者:行者123 更新时间:2023-12-03 07:18:41 24 4
gpt4 key购买 nike

我正在尝试设置一个资源管道,我想在其中使用 CloudFormation 部署所有资源。我有一个单独的管道来部署代码。

使用下面的 CloudFormation 模板

{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"S3Bucket": {
"Type": "AWS::S3::Bucket",
"DeletionPolicy": "Retain",
"Properties": {
"BucketName": "devanimalhubstorage"
}
},
"HelloLambdaRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"RoleName": "HelloLambdaRole",
"AssumeRolePolicyDocument": {
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
}
},
"AnimalhubLambdaFunction": {
"Type": "AWS::Lambda::Function",
"Properties": {
"FunctionName": "AnimalhubLambdaFunction",
"Role": {
"Fn::GetAtt": ["HelloLambdaRole","Arn"]
},
"Code": {},
"Runtime": "dotnetcore2.1",
"Handler": "myfirstlambda::myfirstlambda.Function::FunctionHandler"
}
}
}
}

问题资源处理程序返回消息:“请提供函数代码源。(服务:Lambda,状态代码:400,请求 ID:377fff66-a06d-495f-823e-34aec70f0e22,扩展请求ID:null)”(RequestToken:9c9beee7-2c71-4d5d-e4a8-69065e12c5fa,HandlerErrorCode:InvalidRequest)

我想为代码构建和部署构建一个单独的管道。我们不能在没有代码的情况下部署 Lambda 函数吗?

AWS 中推荐的解决方案是什么? (我曾经在 Azure 中遵循这种方法,现在是 AWS 中的新手)

最佳答案

首先,我建议您查看 AWS SAM 。它在创建和部署无服务器应用程序时非常有用,并且有很多示例可以帮助您完成用例。

其次,在 AWS 中不建议使用单独的管道来实现此目的。正如另一个答案所暗示的那样,使用虚拟代码也非常危险,因为对 cloudformation 的更新将覆盖您使用其他管道部署到 lambda 函数的任何其他代码。

在这样的无服务器应用程序中,您可以将其分为两个或多个 Cloudformation 堆栈。例如,您可以在一个堆栈中创建 S3 存储桶和其他更“稳定”的基础设施,并手动或在管道中部署它。并使用另一个 cloudformation 堆栈将代码部署在单独的管道中。更稳定的资源所需的任何值(ARN 等),您可以作为模板中的参数注入(inject),或使用 ImportValue CloudFormation 的功能。我个人建议使用该参数,因为它对于将来的更改更加灵活。

关于amazon-web-services - 无法在没有代码的情况下使用 CloudFormation 创建 AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68646913/

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