我通过安装程序安装并添加了 Python3.9 和 Pip 到 PATH 中。
python --version
# Python 3.9.7
pip --version
# pip 21.2.4 from C:\Users\{MyUserName}\AppData\Local\Programs\Python\Python39\lib\site-packages\pip (python 3.9)
Run Code Online (Sandbox Code Playgroud)
我安装了 pipelinevpip install pipenv并pipenv --version输出pipenv, version 2021.5.29。不过,如果我尝试使用 Pipenv 安装任何软件包,或者只是输入 Pipenv shell 然后运行python --version,我总是会得到No Python at 'C:\Python39\python.exe'.
Python sys 路径是C:\Users\{MyUserName}\AppData\Local\Programs\Python\Python39,那么为什么 pipelinev 会查找另一个文件夹呢?我该如何解决这个问题?
我在 git bash 中运行所有这些命令。
我想从外部 AWS 账户调用 Lambda,我设法通过在控制台的基于资源的策略选项卡(Lambda > 配置 > 权限 > 基于资源的策略)中创建策略语句来实现此目的。尽管如此,我找不到在我的 CloudFormation 模板中编写这样的策略的方法。这是我写的:
InvokePolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: 'InvokeLambdaFromGateway'
Roles:
- !Sub "arn:aws:iam::${AWS::AccountId}:role/NameOfLambda"
PolicyDocument:
Version: '2012-10-17'
Statement:
- Sid: InvokeLambdaExternally
Effect: Allow
Resource:
- !Ref NameOfLambda
Action:
- lambda:InvokeFunction
Principal:
AWS: ["arn:aws:iam::AccountIUseToInvokeTheLambda:root"]
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:IAM Resource Policy statement shouldnt have Principal or NotPrincipal。
如何使用主体定义将该策略附加到我的 Lambda?