我的无服务器yml文件中包含以下内容:
func TouchFile(name string) error {
file, err := os.OpenFile(name, os.O_RDONLY|os.O_CREATE, 0644)
if err != nil {
return err
}
file.Close()
}
在“输出”部分中有以下内容:
lambdaQueueFirstInvokePermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName: ServiceLambdaFunctionQualifiedArn
Action: ‘lambda:InvokeFunction’
Principal: sqs.amazonaws.com
这返回一条消息:
Outputs:
ServiceLambdaFunctionQualifiedArn:
Value:
‘Fn::GetAtt’: [ lambdaQueueFirst, Arn ]
我想念什么吗?因为在帮助或示例方面很少... 另外,将lambda arn放入权限代码是否更好?如果是这样,那是什么?
答案 0 :(得分:0)
您可以执行以下操作:
ConcatOH['Count'] = ConcatOH['Units_OH'].str.count('_[1-9]_[0]_')
答案 1 :(得分:0)
您可以使用环境变量来构造ARN值。就您而言,您可以在提供者部分中定义一个变量,如下所示。您可能需要根据您的应用程序进行一些修改。
service: serverless App2
provider:
name: aws
runtime: python3.6
region: ap-southeast-2
stage: dev
environment:
AWS_ACCOUNT: 1234567890 # use your own AWS ACCOUNT number here
# define the ARN of the function that you want to invoke
FUNCTION_ARN: "arn:aws:lambda:${self:provider.region}:${self:provider.environment.AWS_ACCOUNT}:function:${self:service}-${self:provider.stage}-lambdaQueueFirst"
Outputs:
ServiceLambdaFunctionQualifiedArn:
Value: "${self:provider.environment.FUNCTION_ARN}"
例如,请参见this和serverless variables for aws。