Я не до конца понимаю процесс публикации / развертывания с помощью sam. Мой самый большой сбой в том, что мой шаблон sam объявляет AWS::Serverless::Function
, а параметр CodeUri заставляет меня ввести URL-адрес корзины s3.
Я видел примеры, когда CodeUri - это просто путь к ресурсам кода на вашем компьютере. Когда я пытаюсь это Сэм жалуется
CodeUri не является допустимым S3 Uri в форме "s3: // bucket / key" с необязательным параметром запроса versionId.
Чтобы обойти это, мне нужно
- изменить мой CodeUri для моих функций на корневую папку моего кода в моем шаблоне
- зайдите в консоль AWS, удалите ресурсы из моего хранилища s3, иначе пакет sam не будет загружен
- запустить пакет sam для загрузки обновленных ресурсов кода
- скопировать новый ключ ресурса s3
- вернитесь в мой шаблон и замените CodeUri новым s3 bucket uri
- запустить 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"]
}
}
}
}