diff --git a/.github/workflows/deploy_fastapi_backend.yml b/.github/workflows/deploy_fastapi_backend.yml index 37b52031..52253a99 100644 --- a/.github/workflows/deploy_fastapi_backend.yml +++ b/.github/workflows/deploy_fastapi_backend.yml @@ -44,23 +44,20 @@ jobs: aws-secret-access-key: ${{ secrets.PROD_AWS_SECRET_ACCESS_KEY }} aws-region: eu-west-2 - - name: Install lambda specific dependencies, with bianries, in a separate dir - run: | - mkdir python - pip install -r backend/requirements/lambda.txt -t python - - - name: Create Layer package - run: | - zip -r layer.zip python - - - name: Deploy Layer to Lambda - run: | - aws lambda publish-layer-version --layer-name LambdaDependenciesLayer --zip-file fileb://layer.zip - - name: Set domain name id: set_domain run: echo "::set-output name=domain::${{ secrets[format('{0}_DOMAIN_NAME', github.ref_name)] }}" + - name: Build Lambda Layer + run: | + pip install -r requirements/lambda.txt -t python + zip -r layer.zip python + + - name: Publish Lambda Layer + run: | + LAYER_ARN=$(aws lambda publish-layer-version --layer-name LambdaDependenciesLayer --zip-file fileb://layer.zip | jq -r '.LayerVersionArn') + aws ssm put-parameter --name "/${{ github.ref_name }}/LambdaDependenciesLayerArn" --value "$LAYER_ARN" --type String --overwrite + - name: Deploy to AWS Lambda via Serverless env: API_KEY: ${{ secrets.FASTAPI_API_KEY }} diff --git a/backend/serverless.yml b/backend/serverless.yml index ba6cbf93..f9f4c394 100644 --- a/backend/serverless.yml +++ b/backend/serverless.yml @@ -37,7 +37,7 @@ functions: app: handler: app.main.handler layers: - - { Ref: LambdaDependenciesLayer } + - ${ssm:/${self:provider.environment.ENVIRONMENT}/LambdaDependenciesLayerArn} events: - http: path: /{proxy+}