You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中SAM构建突发失败:lib模块无OpenSSL_add_all_algorithms属性

GitHub Actions中SAM构建报错:AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'

问题描述

昨日正常执行的GitHub Actions SAM构建任务今日突然失败,抛出错误:

AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'

已确认SAM模板无错误,尝试执行sudo apt install python3-openssl无法解决问题。

GitHub Actions配置

name: SAM deploy
on:
  push:
    branches:
      - main
jobs:
  build-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
      - uses: aws-actions/setup-sam@v2
      - uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.MY_AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.MY_AWS_SECRET_ACCESS_KEY }}
          aws-region: us-west-2
      - name: SAM Build
        run: sam build --use-container --template-file source/deploy-template.yml
      - name: SAM Deploy
        run: sam deploy --no-confirm-changeset --no-fail-on-empty-changeset --stack-name my-stack --resolve-s3 --capabilities CAPABILITY_IAM --region us-west-2 --parameter-overrides Environment=npd

错误详情

Traceback (most recent call last):
  File "/home/runner/work/_temp/setup-sam-PFBc7r/bin/sam", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1651, in invoke
    cmd_name, cmd, args = self.resolve_command(ctx, args)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1698, in resolve_command
    cmd = self.get_command(ctx, cmd_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/cli/command.py", line 133, in get_command
    mod = importlib.import_module(pkg_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.1/x64/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/build/__init__.py", line 6, in <module>
    from .command import cli  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/build/command.py", line 12, in <module>
    from samcli.commands._utils.options import (
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/_utils/options.py", line 21, in <module>
    from samcli.commands._utils.template import get_template_data, TemplateNotFoundException
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/_utils/template.py", line 10, in <module>
    from botocore.utils import set_value_from_jmespath
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/botocore/utils.py", line 37, in <module>
    import botocore.httpsession
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/botocore/httpsession.py", line 46, in <module>
    from urllib3.contrib.pyopenssl import (
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/urllib3/contrib/pyopenssl.py", line 50, in <module>
    import OpenSSL.crypto
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/OpenSSL/crypto.py", line 3268, in <module>
    _lib.OpenSSL_add_all_algorithms()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'
Error: Process completed with exit code 1.

解决方案

这个错误源于pyopenssl库与底层OpenSSL环境的版本兼容性冲突,近期依赖包更新或GitHub Actions runner环境变更可能触发了这个问题,可尝试以下几种修复方式:

1. 固定SAM CLI版本

当前aws-actions/setup-sam@v2默认拉取最新版本,可能引入了依赖冲突,指定一个已知稳定的版本:

- uses: aws-actions/setup-sam@v2
  with:
    sam-version: '1.97.0' # 可根据实际情况调整为稳定版本

2. 切换Python版本

Python 3.11部分依赖兼容性可能存在问题,降级到Python 3.10:

- uses: actions/setup-python@v3
  with:
    python-version: '3.10'

3. 手动安装兼容的依赖版本

在setup-sam步骤后添加依赖安装步骤,锁定pyopenssl和cryptography的兼容版本:

- name: Fix OpenSSL dependency conflict
  run: |
    pip install pyopenssl==23.2.0 cryptography==41.0.7

内容的提问来源于stack exchange,提问作者CloudEnthusiast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:20:39