AWS가 Python3.11에서 Lambda와 함께 사용할 수 있도록 Amazon ECR에서 뉴토끼 공식 트위터 정의 이미지를 만듭니다

뉴토끼 공식 트위터

소개

안녕하세요! 이것은 야마 우치입니다
최근에 AWS Amplify에 연결되었지만 Python을 뉴토끼 공식 트위터하여 Lambda 기능을 추가했을 때 배포가 작동하지 않았으므로 해결 방법을 공유하겠습니다
*화면은 2023 년 12 월 4 일입니다

이번에는 문제

이제이 문제를 먼저 설명하겠습니다
2 단계 끝에 확인할 수 있습니다 아래에 설명 된 작동 점검 환경을 만들지 만 Amplify 프로젝트에 Python을 뉴토끼 공식 트위터하여 Lambda를 추가 한 후 Amplify의 CI/CD 기능을 뉴토끼 공식 트위터하여 자동 빌드 및 배포를 실행할 때 다음 오류가 발생합니다

이 오류는 오류 메시지에 명시된대로 Python 버전 문제와 관련이 있습니다
이 기사

Amplify CLI뉴토끼 공식 트위터 ADD 기능을 통해 런타임으로 Python을 선택하면
내부적으로 Python 38이 선택된 것으로 보입니다
반면에 CI/CD와 함께 뉴토끼 공식 트위터되는 Amazon Linux2에 설치된 Python은 374이므로
버전 불일치가 발생합니다

이것이 원인 인 것 같습니다
버전은 3715뉴토끼 공식 트위터 기사보다 약간 높았지만 문제는 동일합니다
그러나 기사에 따라 Python 38을 설치하는 것이 좋은 생각이라고 생각할 수도 있지만 이번에는 내가 만든 Lambda는 Python 311이므로 불가능합니다

해결 정책

이번에는 "Amplify의 뉴토끼 공식 트위터 정의 빌드 이미지 사용"으로이 문제를 해결하기로 결정했습니다
이미지는 아래 다이어그램에 나와 있습니다

<현재 상태 이미지
뉴토끼 공식 트위터

<해결 이미지
뉴토끼 공식 트위터
위의 이미지에 표시된 것처럼 Docker 이미지는 Cloud9에서 작성되어 Amazon ECR 공개 저장소에서 뉴토끼 공식 트위터 정의 빌드 이미지로 게시되었습니다
Amplify는 뉴토끼 공식 트위터 정의 빌드 이미지로 빌드 환경을 구축하고 Python 311에서 Lambda를 자동으로 배포합니다

해상도 절차

1 참조

이번에는 다음 가정을 진행할 것입니다

  • nodejs가 로컬로 설치됩니다 (NPX 명령은 뉴토끼 공식 트위터할 수 있어야 함)
  • 로컬로 설치
  • 당신은 CLI를 로컬로 설치했습니다
  • 환경에 대한 로컬로 구성 앰프 성능
  • 테스트 앱 클라이언트가 React와 함께 구현됩니다

2 2 조작 확인 환경

먼저 필요한 환경을 만듭니다
이미 환경을 만들었다면 건너 뛸 수 있지만 환경과 다를 수 있습니다
기본 AWS 리소스 생성 절차는이 기사의 시점뉴토끼 공식 트위터 벗어나면서 생략됩니다
공식 지침 및 기타 기술 기사를 참조하십시오

  1. [뉴토끼 공식 트위터 Console] CodeCommit 저장소 생성
  2. [로컬 명령 프롬프트] 클론 저장소
  3. [로컬 명령 프롬프트] 아래 명령으로 React App 프로젝트 생성

  4. [로컬 명령 프롬프트] 다음 명령으로 증폭 프로젝트를 초기화

    런타임시 설정을 적절하게 만드십시오 참고로 다음과 같이 설정했습니다

  5. [로컬 명령 프롬프트] 아래 명령과 함께 Amplify 프로젝트에 Lambda 추가

    런타임이 "파이썬"이라는 점을 제외하고는 적절하게 설정하십시오
    동일한 참조와 마찬가지로 이번에는 다음과 같이 설정했습니다

  6. [로컬] 다음 두 파일을 수정
    *감독48855_48898
    Amplify가 자동으로 생성 된 구성 파일 편집 설정 변경을 변경하십시오

    </ Amplify/Backend/function/lambda 함수 이름/lambda 함수 name-cloudformation-templatejson


    </ Amplify/Backend/function/lambda function name/pipfile

  7. [로컬 명령 프롬프트] 아래 명령과 함께 증폭 프로젝트의 설정을 반영

  8. [로컬 명령 프롬프트] 소스 코드 푸시 코드 커밋 리포지토리
  9. [뉴토끼 공식 트위터 Console] Amplify 프로젝트의 설정을 열고 대상 리포지토리와 CodeCommit의 분기를 연결
    *IAM 역할이 없으면 적절한 것으로 만들어주십시오
  10. [뉴토끼 공식 트위터 Console] 연결 후 자동 CI/CD가 실행되고 이번에 찾고있는 오류가 발생하는지 확인합니다

3 뉴토끼 공식 트위터 정의 빌드 이미지 만들기

나는 마침내 문제에 도달 했으므로 솔루션 단계로 넘어갈 것입니다
먼저 뉴토끼 공식 트위터 정의 빌드 이미지를 만듭니다
이번에는 현지 용량에 압력을 가하고 싶지 않았고 다른 좋은 환경이 없었기 때문에 새로운 Cloud9를 만들었습니다

  1. [뉴토끼 공식 트위터 Console] ECR과 공개 리포지토리 생성
    *생성 후 "푸시 명령보기"버튼을 클릭하여 빌드 및 푸시 명령을 표시합니다
    이후 단계에서 뉴토끼 공식 트위터될 때 편리하게 유지하십시오 이 명령은 나중에 참조 할 수 있습니다
  2. [뉴토끼 공식 트위터 Console] CREATE 9 (인스턴스 유형은 m5large)
  3. [Cloud9] Dockerfile 만들기
    *뉴토끼 공식 트위터 정의 빌드 이미지 요구 사항공식 페이지에 요약되어 있으므로 뉴토끼 공식 트위터 정의 할 때 참조하십시오
    *공식 Github 문제에서 발견되었지만 Alpine Linux는 Amplify의 뉴토끼 공식 트위터 정의 빌드 이미지를 지원하지 않는 것으로 보입니다 자동 빌드가 발생하면 로그가 표시되지 않고 오류가 발생합니다
    조용하고 데비안을 기반으로하십시오 (이번에는 Debian12 Bookworm을 기반으로합니다)
    *동일공식 Github 문제뉴토끼 공식 트위터 Nodejs 버전이 15 이상인 경우 오류가 발생하면 오류가 나타납니다 이를 피하기 위해 Nodejs의 버전은 Dockerfile뉴토끼 공식 트위터 14로 지정됩니다

    <dockerfile

  4. [Cloud9] 아래 명령과 함께 Docker 이미지를 빌드하여 ECR로 누릅니다
    *공개 저장소를 만들 때 뉴토끼 공식 트위터 콘솔에 빌드 명령이 표시됩니다

  5. [AWS Console] Amplify 프로젝트의 콘솔 화면뉴토끼 공식 트위터 Amplifyyml을 빌드 설정의 한 곳뉴토끼 공식 트위터 수정
    *값이 "NPM CI"로 남겨두면 오류가 발생합니다 이것은 아마도 낮은 버전의 nodejs 때문일 것입니다 미래에 해결 될 것입니다

  6. [AWS Console] Amplify 프로젝트의 콘솔 화면에서 설정을 추가하여 빌드 설정에서 뉴토끼 공식 트위터 정의 빌드 이미지를 사용하도록 설정
    *뉴토끼 공식 트위터 정의 빌드 이미지의 URI는 "publicecraws/xxxxx/public 리포지토리 이름 : 최신"

  7. [AWS Console] Amplify 프로젝트의 콘솔 화면뉴토끼 공식 트위터 빌드 기록뉴토끼 공식 트위터 "이 버전을 재배치"클릭하십시오
  8. [뉴토끼 공식 트위터 콘솔] 자동 빌드 및 배포가 성공적으로 완료되도록하십시오

결론

이번에는 Amplify의 뉴토끼 공식 트위터 정의 빌드 이미지를 사용하여 Python 311에 Lambda 함수를 배포하는 방법을 소개했습니다 Amplify의 기본 파이썬 런타임이 향후 311이되기를 바랍니다
또한 이번에는 Cloud9를 뉴토끼 공식 트위터했지만 로컬 Docker와 같은 방식으로 달성 할 수 있다고 생각합니다
그러나 Amplify와 Cloud9를 쉽게 시도 할 수있는 환경을 신속하게 만들 수 있습니다! 앞으로도 계속 뉴토끼 공식 트위터하고 싶습니다
위의 도움이 도움이되기를 바랍니다
연락처 정보

저자 프로필

Yamauchi Kentaro
Yamauchi KentaroTDI 디지털 혁신 기술 부서
내부 개발 프로젝트에 대한 기술 지원 및 Java의 내부 표준 프레임 워크 개발에 대한 책임 Spring Boot와 TDD를 시험해 보는 동안 Line Bot을 가지고 놀았습니다 최근에 마이크로 서비스를 공부하는 동안 클라우드 애플리케이션을 개발할 수있는 교육 엔지니어에도 집중하고 있습니다!

관련 기사