Aws-lambda-dotnet: CloudFormation ๋ณ€๊ฒฝ ์„ธํŠธ ์ƒ์„ฑ ์‹คํŒจ : ์ž˜๋ชป๋œ ์‘๋‹ต ์ˆ˜์‹ 

์— ๋งŒ๋“  2020๋…„ 11์›” 20์ผ  ยท  43์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: aws/aws-lambda-dotnet

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚ด aws lambda ํ•จ์ˆ˜๋ฅผ ๊ฒŒ์‹œ ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ตœ์ข… ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

S3์— ์—…๋กœ๋“œ ์ค‘์ž…๋‹ˆ๋‹ค. (๋ฒ„ํ‚ท : wtbucketlambda ํ‚ค : WT-serverless-xxxxxx.template)
... ์ง„ํ–‰๋ฅ  : 100 %
๊ธฐ์กด ์Šคํƒ ๋ฐœ๊ฒฌ : True
CloudFormation ๋ณ€๊ฒฝ ์„ธํŠธ ์ƒ์„ฑ
... ๊ฒ€ํ†  ํ•  ๋ณ€๊ฒฝ ์„ธํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘
CloudFormation ๋ณ€๊ฒฝ ์„ธํŠธ ์ƒ์„ฑ ์‹คํŒจ : ๋ณ€ํ™˜ AWS :: Serverless-2016-10-31์—์„œ ์ž˜๋ชป๋œ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
AWS ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฒŒ์‹œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š”์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌ,

๋‚ด ์„œ๋ฒ„๋ฆฌ์Šค ํ…œํ”Œ๋ฆฟ :

`{
"AWSTemplateFormatVersion": "2010-09-09",
"Transform": "AWS :: Serverless-2016-10-31",
"Description": "AWS ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„์œ„ํ•œ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ.",
"์ž์›": {
"DefaultFunction": {
"์œ ํ˜•": "AWS :: ์„œ๋ฒ„๋ฆฌ์Šค :: ๊ธฐ๋Šฅ",
"์†์„ฑ": {
"Handler": "not_required_for_custom_runtime",
"๋Ÿฐํƒ€์ž„": "์ œ๊ณต๋จ",
"CodeUri": "",
"Description": "๊ธฐ๋ณธ ๊ธฐ๋Šฅ",
"MemorySize": 256,
"์‹œ๊ฐ„ ์ดˆ๊ณผ": 30,
"์—ญํ• ": null,
"์ •์ฑ…": [ "AWSLambdaFullAccess", "AmazonSSMReadOnlyAccess",
"AWSLambdaVPCAccessExecutionRole"],
"์ด๋ฒคํŠธ": {
"ProxyResource": {
"์œ ํ˜•": "Api",
"์†์„ฑ": {
"๊ฒฝ๋กœ": "/ {proxy +}",
"Method": "ANY"
}
},
"APIWarmingSchedule": {
"์œ ํ˜•": "์ผ์ •",
"์†์„ฑ": {
"Schedule": "์š”๊ธˆ (5 ๋ถ„)",
"Input": "{"Resource ":"WarmingLambda ","Body ":"5 "}"
}
}
}
}
}
},
"์ถœ๋ ฅ": {
"ApiURL": {
"Description": "Prod ํ™˜๊ฒฝ ์šฉ API ์—”๋“œ ํฌ์ธํŠธ URL",
"๊ฐ’": { "Fn :: Sub": "https : // $ {ServerlessRestApi} .execute-api. $ {AWS :: Region} .amazonaws.com / Prod /"}
}

}
}`

๋‚ด AWS Lambda ๋„๊ตฌ ๊ธฐ๋ณธ JSON ํŒŒ์ผ

{
"์ง€์—ญ": "us-east-1",
"profile": "wetip",
"s3-bucket": "wtbucketlambda",
"template": "serverless.template",
"์Šคํƒ ์ด๋ฆ„": "WT",
"configuration": "๋ฆด๋ฆฌ์Šค",
"framework": "netcoreapp2.2",
"msbuild-parameters": "-์ž์ฒด ํฌํ•จ true"
}

bug modulaspnetcore-support response-requested

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”,

๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ https://github.com/aws/aws-lambda-dotnet/issues/765์—์„œ ์ถ”์ ๋ฉ๋‹ˆ๋‹ค

๊ฐ์‚ฌ,
Ashish

๋ชจ๋“  43 ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ํ…œํ”Œ๋ฆฟ :

{
   "AWSTemplateFormatVersion":"2010-09-09",
   "Transform":"AWS::Serverless-2016-10-31",
   "Description":"An AWS Serverless Application that uses the ASP.NET Core framework running in Amazon Lambda.",
   "Parameters":{
      "ShouldCreateBucket":{
         "Type":"String",
         "AllowedValues":[
            "true",
            "false"
         ],
         "Description":"If true then the S3 bucket that will be proxied will be created with the CloudFormation stack."
      },
      "BucketName":{
         "Type":"String",
         "Description":"Name of S3 bucket that will be proxied. If left blank a name will be generated.",
         "MinLength":"0"
      }
   },
   "Conditions":{
      "CreateS3Bucket":{
         "Fn::Equals":[
            {
               "Ref":"ShouldCreateBucket"
            },
            "true"
         ]
      },
      "BucketNameGenerated":{
         "Fn::Equals":[
            {
               "Ref":"BucketName"
            },
            ""
         ]
      }
   },
   "Resources":{
      "AspNetCoreFunction":{
         "Type":"AWS::Serverless::Function",
         "Properties":{
            "Handler":"xxx::xxx.LambdaEntryPoint::FunctionHandlerAsync",
            "Runtime":"dotnetcore3.1",
            "CodeUri":"s3://xxx/xxx/AspNetCoreFunction-CodeUri-637343401555849743-637343401710605189.zip",
            "MemorySize":256,
            "Timeout":30,
            "Role":null,
            "Policies":[
               "AWSLambdaFullAccess"
            ],
            "Environment":{
               "Variables":{
                  "AppS3Bucket":{
                     "Fn::If":[
                        "CreateS3Bucket",
                        {
                           "Ref":"Bucket"
                        },
                        {
                           "Ref":"BucketName"
                        }
                     ]
                  }
               }
            },
            "Events":{
               "ProxyResource":{
                  "Type":"Api",
                  "Properties":{
                     "Path":"/{proxy+}",
                     "Method":"ANY"
                  }
               },
               "RootResource":{
                  "Type":"Api",
                  "Properties":{
                     "Path":"/",
                     "Method":"ANY"
                  }
               }
            }
         }
      },
      "Bucket":{
         "Type":"AWS::S3::Bucket",
         "Condition":"CreateS3Bucket",
         "Properties":{
            "BucketName":{
               "Fn::If":[
                  "BucketNameGenerated",
                  {
                     "Ref":"AWS::NoValue"
                  },
                  {
                     "Ref":"BucketName"
                  }
               ]
            }
         }
      }
   },
   "Outputs":{
      "ApiURL":{
         "Description":"API endpoint URL for Prod environment",
         "Value":{
            "Fn::Sub":"https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/"
         }
      },
      "S3ProxyBucket":{
         "Value":{
            "Fn::If":[
               "CreateS3Bucket",
               {
                  "Ref":"Bucket"
               },
               {
                  "Ref":"BucketName"
               }
            ]
         }
      }
   }
}

์ง€๋‚œ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ ๋™์ผํ•œ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” DynamoDB ํ…Œ์ด๋ธ”์„ ๋ฐฐํฌํ•˜๋Š” ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. ๋žŒ๋‹ค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ์ด ์Šค๋ ˆ๋“œ๋ฅผ๋ณด๊ณ  ์ด๊ฒƒ์ด ๋žŒ๋‹ค์™€ ๊ด€๋ จ์ด์—†๋Š”๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ์ด์ „์— ์ž‘๋™ํ–ˆ๋˜ ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•˜๋ฏ€๋กœ ํšŒ๊ท€์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ aws ์ƒํƒœ ํ™•์ธ ๋Œ€์‹œ ๋ณด๋“œ์—๋Š” us-east-1์˜ ์„œ๋น„์Šค ์ค‘๋‹จ์— ๋Œ€ํ•œ ์ง€ํ‘œ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://status.aws.amazon.com/ ๋ชจ๋“  ์‚ฌ๋žŒ์ด us-east-1์—์„œ์ด ๋ฌธ์ œ๋ฅผ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

AWS ์„œ๋น„์Šค๊ฐ€ ๋‹ค์šด๋˜์–ด ์œ ์‚ฌํ•œ ๋ฌธ์ œ์˜ ์ด์ „ ์Šค๋ ˆ๋“œ. https://github.com/aws/serverless-application-model/issues/793

์ด๊ฒƒ์€ ์ง€๊ธˆ ๊ณ ์ณ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š” @ dalton5 ,

์ข‹์€ ์•„์นจ.

@NithuPMTR์˜ ์˜๊ฒฌ์— ๋”ฐ๋ผ

๊ฐ์‚ฌ,
Ashish

์ด์ œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

๋„ค, ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ

โš ๏ธ ๊ฐ€์‹œ์„ฑ ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š” โš ๏ธ

๋‹ซํžŒ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์€ ์ €ํฌ ํŒ€์ด๋ณด๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
๋„์›€์ด ๋” ํ•„์š”ํ•˜๋ฉด ํŒ€์›์„ ํƒœ๊ทธํ•˜๊ฑฐ๋‚˜์ด ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ƒˆ ๋ฌธ์ œ๋ฅผ์—ฌ์„ธ์š”.
์ด ๋ฌธ์ œ๋กœ ๋‹ค๋ฅธ ์ปค๋ฎค๋‹ˆํ‹ฐ ํšŒ์›๋“ค๊ณผ ๊ณ„์† ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๊ณ  ์‹ถ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๊ทธ๋ ‡๊ฒŒํ•˜์„ธ์š”.

๋‹ค์‹œ ๊ฐ™์€ ๋ฌธ์ œ ..

๋‹ค์‹œ ๊ฐ™์€ ๋ฌธ์ œ ..

us-east-1์— ์•ฑ ์Šคํƒ์„ ๋ฐฐํฌํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํ™•์ธ ๊ฐ€๋Šฅ

๊ฐ™์€ ๋ฌธ์ œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ
us-east-1

transform AWS :: Serverless-2016-10-31์—์„œ ์ž˜๋ชป๋œ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

us-east-1์— ๋ฐฐํฌ

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

๋™์ผ : us-east-1

us-east ์— ๋ฐฐํฌํ•˜๋ ค๋Š” ๋™์ผํ•œ ๋ฌธ์ œ

์—ฌ๊ธฐ์— ๋™์ผ :(

์—ฌ๊ธฐ์— ๋™์ผ :( us-east-1๋„

์—ฌ๊ธฐ์— ๋™์ผ :( us-east-1๋„

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. us-east-1์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ us-east-1์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ์ง€์—ญ์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์—๋„ ๋™์ผ, us-east-1

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” @ashishdhingra us-east-1์—์„œ์ด ๋ฌธ์ œ์— ์ง๋ฉด ํ•œ

์—ฌ๊ธฐ์—๋„ ๋™์ผ, us-east-1

us-east-1์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
us-east-2 ๋ฐ us-west-2์—์„œ ์ž‘์—…

์ด ๋ฌธ์ œ๊ฐ€ us-east-1์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ์ง€์—ญ์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” sa-east ๋ฐฐํฌํ–ˆ๊ณ  ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ https://github.com/aws/aws-lambda-dotnet/issues/765์—์„œ ์ถ”์ ๋ฉ๋‹ˆ๋‹ค

๊ฐ์‚ฌ,
Ashish

๋ฒ„์ง€๋‹ˆ์•„ ๋ถ๋ถ€์—์„œ SAM ์Šคํƒ์„ ์—…๋ฐ์ดํŠธ / ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ด๋ฏธ ์Šคํƒ์„ ์‚ญ์ œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์ง€๋ฉด ํ•ด๊ฒฐํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋” ์ผ์ฐ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. us-east-1

์—ฌ๊ธฐ์—๋„ ๋™์ผ, us-east-1

์—ฌ๊ธฐ์—๋„ ๋™์ผ, us-east-1

๊ทธ๋ž˜ ๋‚˜๋„ us-east-1.

us-east-1 ์ง€์—ญ์€ ํ˜„์žฌ ๋งŽ์€ ์ค‘๋‹จ์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. AWS ์„œ๋น„์Šค ์ƒํƒœ ๋Œ€์‹œ ๋ณด๋“œ ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์ค‘๋‹จ / ์šด์˜ ๋ฌธ์ œ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ์ฃผ์˜ํ•ด์•ผ ํ•  ๋ฌธ์ œ๋Š” Kinesis ์šด์˜ ๋ฌธ์ œ (_Amazon Kinesis Data Streams (N. Virginia) _ :

์˜ค์ „ 8:05 PST : Kinesis์—์„œ US-EAST-1 ๋ฆฌ์ „์—์„œ API ์˜ค๋ฅ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ACM, Amplify Console, API Gateway, AppStream2, AppSync, Athena, Cloudformation, Cloudtrail, CloudWatch, Cognito, Connect, DynamoDB, EventBridge, IoT ์„œ๋น„์Šค, Lambda, LEX, ๊ด€๋ฆฌ ํ˜• ๋ธ”๋ก ์ฒด์ธ, ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน, SageMaker, ์ง€์›์—๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜์†” ๋ฐ ์ž‘์—… ๊ณต๊ฐ„.

์—ฌ๊ธฐ์—๋„ ๋™์ผ, us-east-1

us-east-1์—์„œ ์ง€๋‚œ 2 ์‹œ๊ฐ„ ๋™์•ˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ : ๊ด€๋ฆฌ ์ž์›์„ ์ž‘์„ฑํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ธฐ์ž ChangeSetCreateComplete ์‹คํŒจ : ๋Œ€๊ธฐ์ž๊ฐ€ ํ„ฐ๋ฏธ๋„ ์‹คํŒจ ์ƒํƒœ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

us-east-2์—์„œ ์‹œ๋„ํ–ˆ๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ํ˜ธ US-EAST-1 Trying 2.

์„ฑ๊ณต์ ์ธ US-EAST-2. ํ• ๋ ๋ฃจ์•ผ!

์„œ๋น„์Šค๊ฐ€ ๋ณต์›๋˜๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

๊ฒฐ์ •๋œ!

๊ฐ์‚ฌ!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰