์๋ ํ์ธ์,
๋ด 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"
}
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ด ํ ํ๋ฆฟ :
{
"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. ํ ๋ ๋ฃจ์ผ!
์๋น์ค๊ฐ ๋ณต์๋๋ฉด ์๋ ค์ฃผ์ญ์์ค.
๊ฒฐ์ ๋!
๊ฐ์ฌ!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์,
๋ฌธ์ ๋ ์ฌ๊ธฐ https://github.com/aws/aws-lambda-dotnet/issues/765์์ ์ถ์ ๋ฉ๋๋ค
๊ฐ์ฌ,
Ashish