Я не совсем понимаю, как публиковать / развертывать с помощью sam. Моя самая большая проблема заключается в том, что мой шаблон sam объявляет AWS::Serverless::Function
, а параметр CodeUri вынуждает меня ввести URL-адрес корзины s3.
Я видел примеры, где CodeUri - это просто путь к ресурсам кода на вашем компьютере. Когда я пытаюсь это сделать, Сэм жалуется
«CodeUri» не является допустимым Uri S3 в форме «s3: // bucket / key» с необязательным параметром запроса versionId.
Чтобы обойти это, мне нужно
- измените мой CodeUri для моих функций в корневую папку моего кода в моем шаблоне
- зайдите в консоль AWS, удалите ресурсы в моем ведре s3, иначе пакет sam не будет загружен
- запустите пакет sam, чтобы загрузить мои обновленные ресурсы кода
- скопируйте новый ключ ресурса s3
- вернитесь в мой шаблон и замените CodeUri новым uri ведра s3
- запустить sam deploy
Это крайне неприятно.
Что мне не хватает?
{
"Description" : "Serverless backend",
"Transform" : "AWS::Serverless-2016-10-31",
"Globals" : {
},
"Resources" : {
"db" : {
"Type": "AWS::RDS::DBInstance",
"Properties" : {
"AllocatedStorage": "20",
"DBInstanceClass": "db.t2.micro",
"DBName": "nameforthedb",
"DeleteAutomatedBackups": true,
"Engine": "postgres",
"MasterUsername": "masterUserName",
"MasterUserPassword": "******",
"PubliclyAccessible": true
}
},
"signIn" : {
"Type": "AWS::Serverless::Function",
"Properties": {
"Handler": "index.signIn",
"Runtime": "nodejs8.10",
"CodeUri": "src", <--- complains when this is set to this. Code lives in the src folder. this is fine when I run sam package, but has to be changed to the s3 bucket when running sam deploy
"FunctionName": "signIn",
"Events": {
"SignIn" : {
"Type": "Api",
"Properties" : {
"Path" : "/signIn",
"Method" : "post"
}
}
}
}
},
"Auth" : {
"Type" : "AWS::Cognito::UserPool",
"Properties": {
"Schema" : [
{
"AttributeDataType": "String",
"Name": "email",
"Mutable": true,
"Required": true
},
{
"AttributeDataType": "String",
"Name": "family_name",
"Mutable": true,
"Required": true
},
{
"AttributeDataType": "String",
"Name": "given_name",
"Mutable": true,
"Required": true
},
{
"AttributeDataType": "String",
"Name": "houseId",
"Mutable": true
},
{
"AttributeDataType": "Boolean",
"Name": "owner",
"Mutable": true
}
],
"UsernameAttributes": ["email"]
}
}
}
}