サーバなしマルチゾーン設定(lambda@Edge region)
2939 ワード
関数は、1つのライブラリで異なるバージョンで配布する必要があります.以前ソウルに配備されていた関数があったので、最初はSeverlessでした.ymlで2つのバージョンを設定する方法が見つかりました.Severless自体が提供するマルチゾーンプラグインを見つけて試した結果、CloudFormationを別途設定する必要があることがわかりました.しかしcloudFormationのない予め作成されたcloudFrontを使うので、別の方法を探しました.しかし、2~3日で適切な方法が見つからず、導入にはsls deployが必要であり、事前に登録された関数に影響を及ぼしています.(CloudFrontでステータスをupdate failedに変更...)そこで,以下に示すように,指定関数のみを配布する方法を見つけた.
しかし、これを行うには
How to deploy a single function without deploying other functions on the api using serverless framework
関連書類を見つけて、ここで答えを見つけました.
各関数に対して個別です.yamlファイルを作成して使用すると、既存の関数に影響を及ぼさずに配置できます.
ここで注意したいのは、
私.lambda@Edge新しいymlファイルが作成されたため、ファイル名はserverless-edgeです.ymlとして指定します.
したがって
配備期間
us-east-1(米国バージニア州)とap-東北-2(ソウル)arnkieは異なる必要があります lambda@Edge環境変数は使用できません. lambda Edgeはus-east-1に配備する必要があります.
sls deploy -f functionname
しかし、これを行うには
sls deploy
を先に行わなければなりません.では.Error: Unable to setup base domain mappings for 'serverless-api.thedatahunt.com':
Unable to create base path mapping for 'serverless-api.thedatahunt.com':
ApiMapping key already exists for this domain name
似たようなエラーが発生したり、上記のようなcloudFront状態が変更されたりしたため、適切ではありません.そこで、このエラーを解決するために、グーグル検索をしている間に...How to deploy a single function without deploying other functions on the api using serverless framework
関連書類を見つけて、ここで答えを見つけました.
各関数に対して個別です.yamlファイルを作成して使用すると、既存の関数に影響を及ぼさずに配置できます.
ここで注意したいのは、
sls deploy
はデバッガであり、serverless.yml
ファイルを参照して配置するため、sls deploy --config <yml파일 경로>
を指定して配置することです.私.lambda@Edge新しいymlファイルが作成されたため、ファイル名はserverless-edgeです.ymlとして指定します.
したがって
sls create_domain --config serverless-edge.yml
sls deploy --config serverless-edge.yml
先に作ってください.sls deploy -f 함수이름 --config serverless-edge.yml
このようにすれば、問題なく配布することができます.配備期間
Error:
Error: Unable to create domain 'serverless-api.thedatahunt.com':
Failed to create custom domain 'serverless-api.thedatahunt.com':
Invalid certificate ARN: arn:aws:acm:ap-northeast-... Certificate must be in 'us-east-1'.
...
これらのエラーが発生し、検索するとus-east-1とap-東北-2は別の証明書Arn、すなわち地域のarnを使用する必要があるため、us-east-1のarnキーに変更されました.son-yeonju@MacBook-Pro-4 datahunt-serverless-api % sls deploy --config serverless-edge.yml
Deploying ...-resize-thumbnail to stage prod (us-east-1)
SERVERLESS-IGNORE: Loaded .slsignore
- *.log
- .env
- .git/*
- __tests__/*
Compiling with Typescript...
Using local tsconfig.json - tsconfig.json
Typescript compiled.
✔ Service deployed to stack datahunt-resize-thumbnail-prod (158s)
endpoint: GET - https://...
functions:
resizingThumbnail: ... (21 MB)
Serverless Domain Manager:
Domain Name: s...
Target Domain: ...us-east-1.amazonaws.com
Hosted Zone Id: Z...
最終的にap-東北-2領域に正常に配置され、配置された関数はServer lessです.ymlでは、us-east-1はserverless-edgeです.yml管理に設定します.注意点
Reference
この問題について(サーバなしマルチゾーン設定(lambda@Edge region)), 我々は、より多くの情報をここで見つけました https://velog.io/@usreon/serverless-multi-region-삽질テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol